blmoistawinde / HarvestText

文本挖掘和预处理工具(文本清洗、新词发现、情感分析、实体识别链接、关键词抽取、知识抽取、句法分析等),无监督或弱监督方法
MIT License
2.43k stars 330 forks source link

提个分句的建议 #42

Closed piajiguai closed 2 years ago

piajiguai commented 2 years ago

对于扩尾与句号或省略号的连用,不能直接分句。 具体如下:

import re
from harvesttext import HarvestText
ht = HarvestText()
para = "向量的研究结合了数学的三个基本领域:数量、结构及空间。向量分析则将其扩展至第四个基本的领域内,即变化。创立于二十世纪三十年代的法国的布尔巴基学派认为:纯粹数学,是研究抽象结构的理论。结构,就是以初始概念和公理出发的演绎系统。空间的研究源自于几何-尤其是欧几里得几何。布尔巴基学派认为,有三种基本的抽象结构:代数结构(群,环,域……),序结构(偏序,全序……),拓扑结构(邻域,极限,连通性,维数……)。"
print(ht.cut_sentences(para))
输出结果:
   ['向量的研究结合了数学的三个基本领域:数量、结构及空间。', 
    '向量分析则将其扩展至第四个基本的领域内,即变化。', 
    '创立于二十世纪三十年代的法国的布尔巴基学派认为:纯粹数学,是研究抽象结构的理论。', 
    '结构,就是以初始概念和公理出发的演绎系统。', '空间的研究源自于几何-尤其是欧几里得几何。', 
    '布尔巴基学派认为,有三种基本的抽象结构:代数结构(群,环,域……', 
    '),序结构(偏序,全序……', 
    '),拓扑结构(邻域,极限,连通性,维数……', 
    ')。']

给个粗暴的解决方案哈:检测到括号后,把括号与括号内的内容存起来并替换成某符号,再做分句处理,最后再替换回来。

blmoistawinde commented 2 years ago

感谢你的建议,现在已经通过修改正则表达式修复了这个问题。

现在这个例子的分句结果会是

向量的研究结合了数学的三个基本领域:数量、结构及空间。
向量分析则将其扩展至第四个基本的领域内,即变化。
创立于二十世纪三十年代的法国的布尔巴基学派认为:纯粹数学,是研究抽象结构的理论。
结构,就是以初始概念和公理出发的演绎系统。
空间的研究源自于几何-尤其是欧几里得几何。
布尔巴基学派认为,有三种基本的抽象结构:代数结构(群,环,域……),序结构(偏序,全序……),拓扑结构(邻域,极限,连通性,维数……)。

我觉得应该是比较合理的了。