Giter VIP home page Giter VIP logo

blmoistawinde / harvesttext Goto Github PK

View Code? Open in Web Editor NEW
2.3K 2.3K 327.0 4.41 MB

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

License: MIT License

Python 100.00%
dependency-parser gitee harvesttext keyword-extraction named-entity-recognition new-word-discovery nlp pyhanlp sentiment-analysis text-cleaning text-segmentation text-summarization unsupervised

harvesttext's Introduction

Hi there 👋 I'm Zhiling Zhang

logo

logo

harvesttext's People

Contributors

blmoistawinde avatar francis-du avatar sean16sysu avatar tabletreedev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

harvesttext's Issues

实体链接功能

您好,请问我只需要识别出句子中的实体的位置,还需要上传实体的类型词典吗?实体类型词典是必须要传的吗?

mysql_config not found

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述

在安装的时候,不管是从源码编译requirements.txt,还是pip install HarvestText. 都会出现 mysql_config not found
如何复现

操作系统:MacOs

python版本:3.6

HarvestText版本:最新版

pip下载的harvesttext版本落后

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
您好!请问为什么我用pip下载harvesttext的版本为0.4.1呢?使用pip install --upgrade harvesttext后也没用。谢谢!

如何复现

操作系统:

python版本:
3.9
HarvestText版本:

一定要安装mysql吗

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述

如何复现

操作系统:

python版本:

HarvestText版本:

对没有标点的文本进行分段

您好,我这边有个样本数据没有任何标点,主要是因为实际中给的数据就没有标点,使用这里介绍的方法基本没有分出来段,texttilling这个方法我记得原作者是基于字的个数去进行相似度计算的,而不是标点?

@Sean16SYSU @blmoistawinde @JiaxiangBU

def find_chinese(file):
    pattern = re.compile(r'[^\u4e00-\u9fa5]')
    chinese = re.sub(pattern, '', file)
    return chinese

if __name__ == "__main__":
    line = '''
    ****总书记、国家主席、**军委主席***近日在安徽考察时强调,要贯彻落实好党**决策部署,贯彻新发展理念,坚持稳中求进工作总基调,坚持改革开放,坚持高质量发展,深化供给侧结构性改革,打好三大攻坚战,做好“六稳”工作,落实“六保”任务,决胜全面建成小康社会、决战脱贫攻坚,在构建以国内大循环为主体、国内国际双循环相互促进的新发展格局中实现更大作为,在加快建设美好安徽上取得新的更大进展。
    八月的江淮大地,烈日炎炎。8月18日至21日,***在安徽省委书记李锦斌、省长李国英陪同下,先后来到阜阳、马鞍山、合肥等地,深入防汛救灾一线、农村、企业、革命纪念馆等,看望慰问受灾群众和防汛救灾一线人员,就统筹推进常态化疫情防控和经济社会发展工作、加强防汛救灾和灾后恢复重建、推进长三角一体化发展、谋划“十四五”时期经济社会发展进行调研。
    18日下午,***首先来到阜阳市阜南县王家坝闸,听取安徽省防汛工作及王家坝开闸分洪情况介绍。王家坝闸有千里淮河“第一闸”之称。今年7月20日,王家坝闸时隔13年再次开闸蓄洪,有效发挥了错峰减压功能。在王家坝防汛抗洪展厅,***详细了解淮河治理历史和淮河流域防汛抗洪工作情况。他强调,淮河是新**成立后第一条全面系**理的大河。70年来,淮河治理取得显著成效,防洪体系越来越完善,防汛抗洪、防灾减灾能力不断提高。要把治理淮河的经验总结好,认真谋划“十四五”时期淮河治理方案。
    随后,***来到附近的红亮箱包有限公司,了解阜南县开展就业扶贫和防止因灾致贫返贫情况,并察看车间生产线,同职工亲切交流。***希望企业克服困难,把灾害造成的损失抢回来。他要求各级党委和政府加大扶持力度,帮助企业渡过难关,保障受灾群众、贫困群众就业。
    离开扶贫车间,***来到蒙洼蓄洪区曹集镇利民村西田坡庄台考察调研。洪水退后,庄台附近农田一派繁忙景象,村民正加紧在水塘中采摘芡实、在退水地块中补种蔬菜。***沿着田埂走进农田深处,向正在劳作的乡亲们了解生产恢复情况。他指出,要因地制宜、抢种补种,尽量把灾害损失降到最低,争取秋季仍然取得好的收成。要根据蓄洪区特点安排群众生产生活,扬长避短,同时引导和鼓励乡亲们逐步搬离出去,确保蓄洪区人口不再增多。
    ***接着来到西田坡庄台,察看村容村貌,并走进村民的家,了解他们的家庭收入、受灾损失、生产恢复等情况。***指出,各级党委和政府要根据国家规定,尽快将相关补偿款落实到位,并出台兜底保障等帮扶措施,确保受灾群众基本生活不受影响。
    离开庄台时,村民们纷纷向总书记问好。***对乡亲们说,我十分牵挂灾区群众,这次专程来看望乡亲们,看到大家在党委和政府帮助下生活逐步恢复正常,积极开展生产自救,我就放心了。希望乡亲们自力更生,继续努力,让日子越过越红火!
    19日上午,***前往马鞍山市考察调研。薛家洼生态园地处长江岸边,长期以来乱搭乱建、污水横流,经过整治,如今已成为百姓亲江亲水亲绿的美丽岸线。***详细了解马鞍山市长江岸线综合整治和生态环境保护修复、长江十年禁渔等工作落实情况,并走到江边察看长江水势和岸线生态环境。***强调,生态环境保护和经济发展不是矛盾对立的关系,而是辩证统一的关系。把生态保护好,把生态优势发挥出来,才能实现高质量发展。实施长江十年禁渔计划,要把相关工作做到位,让广大渔民愿意上岸、上得了岸,上岸后能够稳得住、能致富。长江经济带建设,要共抓大保护、不搞大开发。要增强爱护长江、保护长江的意识,实现“人民保护长江、长江造福人民”的良性循环,早日重现“一江碧水向东流”的胜景。
    马鞍山市因钢而设、因钢而兴。***来到**宝武马钢集团,了解企业生产经营情况,察看重点产品展示。随后,***走进优质合金棒材车间,察看加热炉、初轧机、中轧机等运行情况。车间外,企业劳动模范、工人代表看到总书记来了,热烈鼓掌。***亲切地同大家打招呼。他指出,疫情发生以来,马钢克服困难,率先复工复产,上半年产量和营收同比实现“双升”。要抓住深化国有企业改革和推动长三角一体化发展的重大机遇,加强新材料新技术研发,开发生产更多技术含量高、附加值高的新产品,增强市场竞争力。劳动模范是共和国的功臣,要大力弘扬劳模精神。
    19日下午,***来到合肥市肥东县十八联圩生态湿地蓄洪区巢湖大堤罗家疃段考察。今年入汛以来,巢湖水位多次突破历史极值,合肥市主动启用十八联圩及周边圩区蓄洪。***仔细察看巢湖水势水情,听取环巢湖主要圩口分洪及周边湿地蓄洪、巢湖综合治理情况汇报,了解防汛物资和大堤加固情况。他强调,要坚持湿地蓄洪区的定位和规划,尽快恢复生态湿地蓄洪区的行蓄洪功能和生态保护功能。他指出,当前,南方有关地方要继续抓好防汛救灾工作,同时要严防次生灾害。北方有关地方要对可能发生的汛情加强警戒和防范,全面落实防汛救灾各项工作,确保安全度汛,确保人民群众生命财产安全。
    大堤上,***亲切看望慰问了在防汛抗洪救灾斗争中牺牲同志的家属、防汛抗洪一线人员、先进典型代表和参加抗洪抢险的部队官兵,并向全国奋战在防汛抗洪救灾一线的同志们表示诚挚的问候。他强调,今年入汛以来,南北方江河湖泊接连出现超警戒水位险情。广大干部群众和人民解放军、武警官兵坚决响应党和政府号召,发扬不怕累苦、不怕疲劳、不怕牺牲的精神斗志,坚守在防汛抗洪救灾第一线,涌现了许多先进典型和感人事迹,展现了**人民众志成城、顽强拼搏、敢于胜利的英雄气概,书写了洪水无情人有情的人间大爱。党和人民感谢你们!
    当天下午,***在合肥参观了安徽创新馆,对安徽在推进科技创新和发展战略性新兴产业上取得积极进展表示肯定。他指出,安徽要加快融入长三角一体化发展,实现跨越式发展,关键靠创新。要进一步夯实创新的基础,加快科技成果转化,加快培育新兴产业,锲而不舍、久久为功。
    渡江战役纪念馆坐落在巢湖之滨。71年前,在人民群众大力支援下,人民解放军一举突破长江天险,为解放全**创造了条件。***参观了纪念馆,重温那段革命历史。他强调,淮海战役的胜利是靠老百姓用小车推出来的,渡江战役的胜利是靠老百姓用小船划出来的。任何时候我们都要不忘初心、牢记使命,都不能忘了人民这个根,永远做忠诚的人民服务员。要广泛开展爱国主义教育,让人们深入理解为什么历史和人民选择了**共产党,为什么必须坚持走**特色社会主义道路、实现中华民族伟大复兴。
    21日上午,***听取了安徽省委和省政府工作汇报,对安徽各项工作取得的成绩给予肯定,希望安徽广大干部群众进一步解放**、开拓奋进,知重负重、攻坚克难,为全面建成小康社会、开启全面建设社会主义现代化国家新征程贡献更大力量。
    ***强调,当前,防汛救灾任务仍很艰巨,各级党委和政府要发扬不怕疲劳、连续作战的作风,做好防汛救灾和灾后恢复重建工作,支持受灾企业复工复产。要把防止因疫因灾致贫返贫摆在突出位置,坚持精准扶贫,进行有针对性的帮扶。要坚持以防为主、防抗救相结合,结合“十四五”规划,聚焦河流湖泊安全、生态环境安全、城市防洪安全,谋划建设一批基础性、枢纽性的重大项目。要坚决扛稳粮食安全责任,深化农业供给侧结构性改革,促进农村三产融合发展,提高农业质量效益和竞争力。
    ***指出,要深刻把握发展的阶段性新特征新要求,坚持把做实做强做优实体经济作为主攻方向,一手抓传统产业转型升级,一手抓战略性新兴产业发展壮大,推动制造业加速向数字化、网络化、智能化发展,提高产业链供应链稳定性和现代化水平。要牢牢把握扩大内需这个战略基点,努力探索形成新发展格局的有效路径。要对标世界一流,加强前沿探索和前瞻布局,加大关键核心技术攻坚力度。要发挥好改革的突破和先导作用,依靠改革破除发展瓶颈、汇聚发展优势、增强发展动力。要紧扣一体化和高质量两个关键词,深入推进重点领域一体化建设,推进长三角一体化发展。
    ***强调,要牢固树立以人民为中心的发展**,扎实推进民生工程,出台更多援企、减负、稳岗、扩就业的支持性措施,突出做好高校毕业生、农民工、退役军人、受灾群众等重点人群就业工作,落实好纾困惠企政策,保护和激发市场主体活力。要全面贯彻党的教育方针,落实立德树人根本任务,促进教育公平。要保持现有帮扶政策总体稳定,接续推进全面脱贫与乡村振兴有效衔接,推动贫困地区走向全面振兴。要完善重大疫情防控救治体制机制,健全公共卫生应急管理体系。要推动社会治理和服务重心向基层下移,完善基层社会治安综合治理。
    ***指出,人民是我们党的执政基础。抗击新冠肺炎疫情、抗洪抢险斗争再次表明,只要我们党始终为人民执政、依靠人民执政,就能无往而不胜。各级领导班子和领导干部要践行党的宗旨,树牢群众观点,力戒形式主义、官僚主义。要教育引导广大党员、干部坚定理想信念,不断提高辨别政治是非、保持政治定力、驾驭政治局面、防范政治风险的能力。要坚持反腐败无禁区、全覆盖、零容忍,一体推进不敢腐、不能腐、不想腐体制机制建设,推动全面从严治党向基层一线、向群众身边延伸,实现正气充盈、政治清明。
    丁薛祥、刘鹤、陈希、王勇、何立峰和**有关部门负责同志陪同考察,张又侠参加有关活动。
    '''
    # print("原文:")
    # print(line)
    print("保留中文:")
    text=find_chinese(line)
    # print("保留非中文:")
    # find_unchinese(line)


ht = HarvestText()

print("原始文本[1段]")
# print(get_text+"\n")
print("预测文本[手动设置分5段]")
predicted_paras = ht.cut_paragraphs(text, num_paras=5)
print("\n".join(predicted_paras)+"\n")

结果的话我这边放个图,也就是还是1段,没有分出来

image

文本分段指定段数切割失败

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述

ht0 = HarvestText()

text='《长征》第1集 The Long March 01震惊世界的二万五千里长征(唐国强/陈道明),【CCTV电视剧】Highlights:***针对奔袭湘江的作战命令会给数万红军带来的严重损失,连夜找“三人团”请示复议作战计划,李德不耐烦地指责***是在危言耸听。'
print('fenduanqian==',text)
predicted_paras = ht0.cut_paragraphs(text, num_paras=3) 
for i in predicted_paras:
    print('duan==',i)

如何复现

fenduanqian== 《长征》第1集 The Long March 01震惊世界的二万五千里长征(唐国强/陈道明),【CCTV电视剧】Highlights:***针对奔袭湘江的作战命令会给数万红军带来的严重损失,连夜找“三人团”请示复议作战计划,李德不耐烦地指责***是在危言耸听。 
duan== 《长征》第1集 The Long March 01震惊世界的二万五千里长征(唐国强/陈道明),【CCTV电视剧】Highlights:***针对奔 袭湘江的作战命令会给数万红军带来的严重损失,连夜找“三人团”请示复议作战计划,李德不耐烦地指责***是在危言耸听。

操作系统:
windows10
python版本:
3.8
HarvestText版本:
0.8.1.5

清洗模块改进

通过爬虫抓取微博热门语料对HT的清洗模块进行了小测试,故根据返回结果提出反馈:

①
①:每条语料都有”\u200b“

②
②:中间的博文内容“辛苦了”被洗掉

③
③:存在特殊表情符号无法处理

④
④:“[]"后的全部内容被洗掉

⑤
⑤:中括号内的“[]"包裹的内容被洗掉

⑥
⑥:除了”\u200b“,HT大多数情况下的表现已经很好

ModuleNotFoundError: No module named 'harvesttext.algorithms'

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
ModuleNotFoundError: No module named 'harvesttext.algorithms'

如何复现
直接运行的examples/basic.py 文件

操作系统:

python版本:

HarvestText版本:

文本清洗

列如微博文本中有#号未清洗,微博也新增了很多表情。希望大佬将一功能更新

ht.clean_text内emoji或weibo_topic的功能改进建议

描述你想要的功能
ht.clean_textemojiweibo_topic的功能,目前是去除[]包括的表情包(限定字符串长度)以及去除两个#之间包裹的内容
是否可以提供一个新的接口,可以去除给定首尾字符串如'【''】'之间的字符串(包括首尾字符串)
即,新参数如:
specefic_cont: list
["【", "】", 20]
首、尾、上限长度
或者上限长度设为缺省,允许2个输入,即
specefic_con_start_end: list, specefic_con_len: int

如:
specefic_con_start_end = ["【", "】“]

specefic_con_len = 20

去除包括"【"和"】“在内,长度为20的字符串(话说我还不知道你源码限定的那个字符串长度,是包括两边的括号?还是没包括??)

是否有自己想过的可能解决方案?
有啊,魔改你的类库,哈哈!最近做实验赶时间还没来得及看你源码
我都打算拿你那个emoji直接改了

其他想说的
welldone,即便佬你不改我之后也会改一版...(泪目
怎么会有人在网上发帖,用这么多奇奇怪怪的括号啊..方括号大括号小括号,奇奇怪怪的括号啊救命

问答模块无法正常使用

你好,我尝试使用您的问答模块跑demo,就是运行naiveKGQA.py这个Python脚本,结果直接报如下错误:
问:你好
答:你好
问:孙中山干了什么事?
Traceback (most recent call last):
File "D:\workspace\git\HarvestText\examples\naiveKGQA.py", line 165, in
print("答:"+QA.answer(question0))
File "D:\workspace\git\HarvestText\examples\naiveKGQA.py", line 110, in answer
answers = self.search_answers(search0)
File "D:\workspace\git\HarvestText\examples\naiveKGQA.py", line 99, in search_answers
records = self.KG.query(search0)
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\graph.py", line 1127, in query
result = plugin.get(result, query.Result)
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\plugin.py", line 107, in get
return p.getClass()
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\plugin.py", line 69, in getClass
module = import(self.module_path, globals(), locals(), [""])
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\plugins\sparql_init_.py", line 33, in
from . import parser
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\plugins\sparql\parser.py", line 184, in
Param('prefix', PN_PREFIX)) + Suppress(':').leaveWhitespace()
File "D:\ProgramData\anaconda3\envs\kg_env\lib\site-packages\rdflib\plugins\sparql\parserutils.py", line 114, in init
self.name = name
AttributeError: can't set attribute

操作系统:Win10 专业版

python版本:3.6.13

HarvestText版本:0.8.1.8

情感分析跑出来的结果超过[-1, 1]

在情感分析当中,跑出来的结果超过了[-1,1]

  • pos:用的是get_qh_sent_dict() ['pos']

  • neg:用的是get_qh_sent_dict() ['neg']

  • 训练文本

docs = ["张市筹设兴华实业公司外区资本家踊跃投资晋察冀边区兴华实业公司,自筹备成立以来,解放区内外企业界人士及一般商民,均踊跃认股投资", 
        "该公司原定资本总额为二十五万万元,现已由各界分认达二十万万元,所属各厂、各公司亦募得股金一万万余元",
        "连日来解放区以外各工商人士,投函向该公司询问经营性质与范围以及股东权限等问题者甚多,络绎抵此的许多资本家,于参观该公司所属各厂经营状况后,对**政府扶助与奖励私营企业发展的政策,均极表赞同,有些资本家因款项未能即刻汇来,多向筹备处预认投资的额数。由平津来张的林明棋先生,一次即以现款入股六十余万元"
       ]
ht = HarvestText()
sdict = ht.build_sent_dict(docs, min_times=1, pos_seeds=pos,neg_seeds=neg)
  • 测试
ht.analyse_sent(docs[0])

输出:2.571525361280356

请问下,通用情感词典[内置资源]要怎样才能用上?

如果没想好选择哪些词语作为“种子词”,本库中也内置了一个通用情感词典内置资源,在不指定情感词时作为默认的选择,也可以根据需要从中挑选。
具体如何挑选?
sent_dict = ht.build_sent_dict(sents,min_times=1,scale="+-1")
是我从qh_sent_dict.json里挑选词,组成sents吗?有无自动加载qh_sent_dict.json全部词的方法?

提个分句的建议

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

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

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

url正则表达式卡死

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
某些文本正则表达式会卡死

如何复现
“#王一博百里弘毅# wyb#王一博风起洛阳#@二哈啃鸡腿 @yb甜甜的小可爱 //@Knife-Peace反黑站 【1/25】今日五再来‼️‼️裙👉🏻O网页链接目标打卡人数:3000打卡模版 见评论⭕️评论时请同步@ xxx@\xa0 xxx 两位好友•不要@ 你哥⭕️打卡完请顺手转发,转发不带tag✅微博「有害•暴恐」 1.https://service.account.weibo.com/reportspamobile?rid=4597215374620241&type=2&from=400002.https://service.account.weibo.com/reportspamobile?rid=4597257192873019&type=1&from=400003.https://service.account.weibo.com/reportspamobile?rid=4597238372241607&type=1&from=400004.https://service.account.weibo.com/reportspamobile?rid=4597253895883962&type=1&from=400005.https://service.account.weibo.com/reportspamobile?rid=4597261051368482&type=1&from=400006.https://service.account.weibo.com/reportspamobile?rid=4597256013743185&type=1&from=400007.https://service.account.weibo.com/reportspamobile?rid=4597258354169688&type=1&from=400008.https://service.account.weibo.com/reportspamobile?rid=4597253216408617&type=1&from=400009.https://service.account.weibo.com/reportspamobile?rid=4597257359852121&type=1&from=40000✅主页「人身攻击+同步拉黑」⚠️人身攻击模板已更新见评论(按正序查看)1.https://service.account.weibo.com/reportspamobile?rid=7315070554&type=3&from=400002.https://service.account.weibo.com/reportspamobile?rid=7405781810&type=3&from=400003.https://service.account.weibo.com/reportspamobile?rid=7521879541&type=3&from=400004.https://service.account.weibo.com/reportspamobile?rid=6605423447&type=3&from=400005.https://service.account.weibo.com/reportspamobile?rid=5344089965&type=3&from=400006.https://service.account.weibo.com/reportspamobile?rid=6742563952&type=3&from=400007.https://service.account.weibo.com/reportspamobile?rid=1708151137&type=3&from=40000(批皮黑:ID:我们翘课吧)8.https://service.account.weibo.com/reportspamobile?rid=5161857914&type=3&from=400009.https://service.account.weibo.com/reportspamobile?rid=2060991762&type=3&from=40000(批皮黑,ID:Y/i/b/o_姐姐)10.https://service.account.weibo.com/reportspamobile?rid=5470126181&type=3&from=4000011.https://service.account.weibo.com/reportspamobile?rid=2697131254&type=3&from=40000⭕ 今日一:O网页链接⭕ 今日二:O网页链接⭕ 今日三:O网页链接⭕ 今日四:O网页链接历史查询👉🏻 O微博社区管理中心 d\x014597294076798896\x010”

操作系统:Ubuntu18.04

python版本:3.8.5

HarvestText版本:0.8

三元组抽取是报错了,不知道你有没有遇到?网上没有找到解决方法

Traceback (most recent call last):
File "/root/PycharmProjects/entity_extract/test.py", line 82, in
SVOs += ht2.triple_extraction(sent.strip())
File "/root/anaconda3/envs/tensorflow/lib/python3.6/site-packages/harvesttext-0.5.4-py3.6.egg/harvesttext/harvesttext.py", line 577, in triple_extraction
arcs = self.dependency_parse(sent, standard_name, stopwords)
File "/root/anaconda3/envs/tensorflow/lib/python3.6/site-packages/harvesttext-0.5.4-py3.6.egg/harvesttext/harvesttext.py", line 550, in dependency_parse
sentence = HanLP.parseDependency(sent2)
jpype._jexception.NoSuchElementExceptionPyRaisable: java.util.NoSuchElementException

信息检索

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
信息检索结果为空

如何复现
from harvesttext import HarvestText
ht = HarvestText()
docs = ["武磊威武,中超第一射手!",
"郜林看来不行,已经到上限了。",
"武球王威武,中超最强前锋!",
"武磊和郜林,谁是**最好的前锋?"]
inv_index = ht.build_index(docs)
print(ht.get_entity_counts(docs, inv_index))

操作系统:windows

python版本:Python 3.8.5

HarvestText版本:0.8.1.4

自动分段bug

下面自动分段的代码运行时, 报错了, IndexError: list index out of range

from harvesttext import HarvestText
ht0 = HarvestText()

text = """冠心病不是遗传性疾病。
遗传性疾病的发生,是因为从父母得到的遗传物质出了问题,例如染色体、基因发生了改变。目前,医学界还没有发现有遗传物质改变会明确导致冠心病。因此,严格来说,冠心病并不属于遗传性疾病,本身并不会遗传。
但是冠心病具有一定的家族聚集性,这是因为,与冠心病发生相关的一些危险因素有可能在家族中集中发生,例如高脂血症可能遗传,家人可能共同具有吸烟、高盐饮食、少运动等不良生活方式。同时,相关的研究也表明,遗传因素确实对早发冠心病有影响,一般来说,男性小于 55 岁、女性小于 65 岁明确诊断冠心病被认为是早发。
因此,如果家人中有冠心病患者,特别是有早发冠心病家族史,即一级亲属(父母、子女、兄弟姐妹)中有男性小于 55 岁、女性小于 65 岁明确诊断冠心病,自己还是要警惕。"""

predicted_paras = ht0.cut_paragraphs(text)

新词发现的结果质量问题

描述你想要的功能

一封邮件反馈问题:
image
可见图一中,我们新词发现的期待值为“喜宝”,实际结果也返回了“喜宝”,但却有两个无关项。

image
图二中对新词的识别效果就明显不行了,连“自己”、“没有”、“跳舞”这样的词也判定为新词

两个例子中的共同问题是识别出了不希望出现的结果,即,算法的准确问题。

图二的例子中,所有结果都不是理想的结果,即,算法的召回问题。

可能解决方案

准确问题

要想解决准确问题,只要过滤掉“不好”的结果就可以了。

过滤功能实际上本库已经实现了,可以使用excluding_words参数,在其中设定不想要出现的单词列表/集合等即可。

问题是如何定义“不好”的结果,这里大概可以提供两种设想:

  1. 停用词
  2. 旧词,即词典中的常见单词

如果只是使用停用词,本库现在已经可以完成整个流程:

from harvesttext import HarvestText
from harvesttext.resources import get_baidu_stopwords

ht = HarvestText()
stopwords = get_baidu_stopwords()
text = "这里填入你的文本"
new_words_info = ht.word_discover(para, excluding_words=stopwords)  # 这里过滤了停用词
new_words = new_words_info.index.tolist()

如果要过滤旧词,本库还需要引入外部词典。

召回问题

召回问题,可能可以通过获得更多词语来缓解。这可以通过调整参数来实现,这个函数有这些参数可以调整:

:param max_word_len: 允许被发现的最长的新词长度
:param min_freq: 被发现的新词,在给定文本中需要达到的最低频率
:param min_entropy: 被发现的新词,在给定文本中需要达到的最低左右交叉熵
:param min_aggregation: 被发现的新词,在给定文本中需要达到的最低凝聚度

第一项容易理解,后面三项涉及算法原理,不过简单地说,都是越低,能发现的词就越多,不过太低就会引入更多错误结果,出现上一类问题。

要调参获得更多词语的话,首先要设置auto_param=False,然后,可以在默认参数的基础上往下调,下面的默认的参数:

min_entropy = np.log(length) / 10
min_freq = min(0.00005, 20.0 / length)
min_aggregation = np.sqrt(length) / 15

未来改进计划

  • 将停用词设为默认过滤词

  • 引入外部词典,允许方便地过滤旧词

  • 上面的操作在readme和文档中还不明确,需要完善

HarvestText 安装出现以下问题AttributeError: module 'gensim' has no attribute 'utils'

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
安装出现以下问题

AttributeError Traceback (most recent call last)
in ()
----> 1 from harvesttext import HarvestText
2 ht = HarvestText()

D:\python\lib\site-packages\harvesttext_init_.py in ()
2 #!/usr/bin/env python
3 import pickle
----> 4 from .harvesttext import HarvestText
5 from .resources import *
6

D:\python\lib\site-packages\harvesttext\harvesttext.py in ()
21 from .sentiment import SentimentMixin
22 from .summary import SummaryMixin
---> 23 from .word_discover import WordDiscoverMixin
24 from .resources import get_baidu_stopwords
25

D:\python\lib\site-packages\harvesttext\word_discover.py in ()
9 from .resources import get_baidu_stopwords
10 from .algorithms.word_discoverer import WordDiscoverer
---> 11 from .algorithms.entity_discoverer import NFLEntityDiscoverer, NERPEntityDiscover
12 from .algorithms.keyword import textrank
13

D:\python\lib\site-packages\harvesttext\algorithms\entity_discoverer.py in ()
9 from collections import defaultdict
10 from sklearn.metrics.pairwise import cosine_similarity
---> 11 from gensim.models import FastText
12
13 class NERPEntityDiscover:

D:\python\lib\site-packages\gensim_init_.py in ()
3 """
4
----> 5 from gensim import parsing, corpora, matutils, interfaces, models, similarities, summarization, utils # noqa:F401
6 import logging
7

D:\python\lib\site-packages\gensim\models_init_.py in ()
20 from .atmodel import AuthorTopicModel # noqa:F401
21 from .ldaseqmodel import LdaSeqModel # noqa:F401
---> 22 from .fasttext import FastText # noqa:F401
23 from .translation_matrix import TranslationMatrix, BackMappingTranslationMatrix # noqa:F401
24

D:\python\lib\site-packages\gensim\models\fasttext.py in ()
322
323
--> 324 class FastText(BaseWordEmbeddingsModel):
325 """Train, use and evaluate word representations learned using the method
326 described in Enriching Word Vectors with Subword Information <https://arxiv.org/abs/1607.04606>_, aka FastText.

D:\python\lib\site-packages\gensim\models\fasttext.py in FastText()
494
495 @Property
--> 496 @gensim.utils.deprecated("Attribute will be removed in 4.0.0, use wv.min_n instead")
497 def min_n(self):
498 return self.wv.min_n

AttributeError: module 'gensim' has no attribute 'utils'

操作系统:
win10
python版本:3.7
HarvestText版本:0.8.1.1
genism版本:3.8.3

请问下这个如何解决?

语料处理增加对数学中符号的转化

a³转化为a的三次幂,能够讲右上角阿拉伯数字转中文数字,还有计量单位也可以增加一下,电流,毫安,这些,能增加符号温度℃这些更完美了

电流 | 安(培) | A
平面角1°=60ˊ

能支持模型训练吗

自动分段模型训练
用了自己的数据中英文结合的,发现分段效果不太好。请问能支持特定数据的模型训练吗?

获得文档中所有实体出现次数的例子与预期结果不符

在readme中有一段例子如下

from harvesttext import HarvestText
ht = HarvestText()
docs = ["武磊威武,中超第一射手!",
		"郜林看来不行,已经到上限了。",
		"武球王威武,中超最强前锋!",
		"武磊和郜林,谁是**最好的前锋?"]
inv_index = ht.build_index(docs)
print(ht.get_entity_counts(docs, inv_index))
# {'武磊': 3, '郜林': 2, '前锋': 2}

我按照例子的代码来做,得出的结果为空值,其中inv_index的值为{defaultdict:0}

TopicRank 实现

描述你想要的功能
能够提供具体例子更好

TextRank 得到的是摘要性的句子而非短语,TopicRank 可以实现这一点,这算一个新功能。
而且从 paper 的对比试验来看,短语抽取是比 TextRank 会更高些(作者对比可英文和法语)。

是否有自己想过的可能解决方案?

其实有解决方案了,见 pke,但是这个包实在是太多 bug 了

  1. 基本上是依赖包各种问题(nltk),要么就是一些浮动值计算的bug,如ZeroDivisionError: float division by zero,这里gap不做极端例子的处理, self.graph[i][j]['weight'] += 1.0 / gap
  2. 整个包我看了,不支持中文,只支持英文和其他几种外语,如果要强用中文,需要自己手动分词等按照英文的方式去套用模型,这个在中文文本数据处理有点违背初衷了。
  3. 我有一些准备,基本上 paper 我看了,idea 大概比较清楚,这有一些 notes,实现上,我还在考虑,基本上其实可以参考一些 pke 的底层函数。

其他想说的

也想看看项目开发者的想法,比如这个需求有没有必要做。

情感预测正负向概率均为0

仅输入一个句子,预测概率均为0
ht.build_sent_dict(["今天天气不错"],min_times=1,scale="+-1")
{'今天天气': 0.0, '不错': 0.0}

无法解析导入“pyxdameraulevenshtein”

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述
无法解析导入“pyxdameraulevenshtein”

操作系统:
win11

编译器:vscode

python版本:3.8.10

HarvestText版本:0.8.2.1

image

英文文本效果如何?

a nlp beginner, 最近在看无(弱)监督的情感分析,想知道这个项目对英文文本效果如何?

链接失效

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

问题描述

【注:本库仅完成实体分词和情感分析,可视化使用matplotlib】
- [近代史纲要信息抽取及问答系统](https://blog.csdn.net/blmoistawinde/article/details/86557070)(命名实体识别,依存句法分析,简易问答系统)

https://blog.csdn.net/blmoistawinde/article/details/86557070链接失效

更新到0.5.4.1版本失败

当输入了,
pip install harvesttext==0.5.4.1 --extra-index-url https://pypi.python.org/simple
时,
安装出现了问题:

Exception:
Traceback (most recent call last):
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\cli\base_command.py", line 179, in main
    status = self.run(options, args)
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\commands\install.py", line 393, in run
    use_user_site=options.use_user_site,
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\req\__init__.py", line 50, in install_given_reqs
    auto_confirm=True
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\req\req_install.py", line 816, in uninstall
    uninstalled_pathset = UninstallPathSet.from_dist(dist)
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\req\req_uninstall.py", line 496, in from_dist
    for path in uninstallation_paths(dist):
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\req\req_uninstall.py", line 50, in unique
    for item in fn(*args, **kw):
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_internal\req\req_uninstall.py", line 67, in uninstallation_paths
    r = csv.reader(FakeFile(dist.get_metadata_lines('RECORD')))
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1414, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "c:\users\lijy2\appdata\local\programs\python\python36\lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 1411, in get_metadata
    return value.decode('utf-8') if six.PY3 else value
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 1921: invalid start byte

加上-U命令也是不行

关系网络无论怎么弄,都返回空的{}

我已经仔细查看过本库的README和之前的Issues,没有发现解决方案。

我完整运行了提供的以下关系网络示例函数,但print都是{},其它函数如情感分析、分句分词等都正常
def entity_network():
print("\nentity network")
# 在现有实体库的基础上随时新增,比如从新词发现中得到的漏网之鱼
ht.add_new_entity("武磊", "颜骏凌", "球员")
docs = ["武磊和颜骏凌是球员",
"武磊和郜林都是国内顶尖前锋"]
G = ht.build_entity_graph(docs)
print(dict(G.edges.items()))
G = ht.build_entity_graph(docs, used_types=["球员"])
print(dict(G.edges.items()))

操作系统:linux

python版本:3.6.8

HarvestText版本:V0.8

安装出现很多问题

这个安装的时候很多报错啊,比如 No module named 'community' 很奇怪,有这个模块?

清洗模块反馈

通过爬虫抓取微博热门语料对HT的清洗模块进行了小测试,故根据返回结果提出反馈:

①
①:每条语料都有”\u200b“

②
②:中间的博文内容“辛苦了”被洗掉

③
③:存在特殊表情符号无法处理

④
④:“[]"后的全部内容被洗掉

⑤
⑤:中括号内的“[]"包裹的内容被洗掉

⑥
⑥:除了”\u200b“,HT大多数情况下的表现已经很好

劳烦在码仓里添加一下引文格式

描述你想要的功能
劳烦在码仓里添加一下引文格式

是否有自己想过的可能解决方案?
有,这不您写的我们引起来放心

其他想说的
像下面这样的

@misc{blmHar???,
title={HarvestText : ????},
author={???},
journal = {GitHub repository},
howpublished = {\url{https://github.com/blmoistawinde/HarvestText}},
year={???}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.