本代码旨在实现中/英文文本的分割,数据结构如下:
第一层列表:偶数index的元素为非引号内的文本,奇数index内的元素为引号内的文本。所有元素均为列表。
第二层列表:每个文本按句末符号(问号、感叹号、句号)切分后的文本。所有元素均为列表。
第三层列表:每个文本按逗号切分后的文本,所有元素均为字典。
字典:包含两个field,“text”为原文本,“index”为原文本经过分词后得到的index,每个字符的index为0或1。若为1,该字符位于词尾,0则为非词尾。例子:'text': '蟒蛇把猎物囫囵吞下,', 对应的分词结果为'蟒蛇|把|猎物|囫囵|吞|下|,|' 对应的'index': array([0., 1., 1., 0., 1., 0., 1., 0., 1., 1.])}
python re
python jieba
python numpy
《小王子》中文译本
以下是如何使用该代码的示例。以《小王子》中文译本为例:
import split_text
filename = "xiaowangzi_zhoukexi_main_text.txt"
result = split(filename, language="Chinese")
for e in result:
print(e)
运行代码结果如下:
[[{'text': '1我六岁那年,', 'index': array([1., 1., 0., 1., 0., 1., 1.])}, {'text': '在一本描写原始森林的名叫《真实的故事》的书上,', 'index': array([1., 0., 1., 0., 1., 0., 0., 0., 1., 1., 0., 1., 1., 0., 1., 1., 0., 1., 1., 1., 0., 1., 1.])}, {'text': '看见过一幅精彩的插图,', 'index': array([0., 1., 1., 0., 1., 0., 1., 1., 0., 1., 1.])}, {'text': '画的是一条蟒蛇在吞吃一头猛兽。', 'index': array([1., 1., 1., 0., 1., 0., 1., 1., 1., 1., 0., 1., 0., 1., 1.])}], [{'text': '我现在把它照样画在上面。', 'index': array([1., 0., 1., 1., 1., 0., 1., 1., 1., 0., 1., 1.])}], [{'text': '书中写道:', 'index': array([0., 1., 0., 1., 1.])}]]