此处只简单汇总一下各种文本工具名目,他们的详细使用参见具体帖子。本文主要参考<8种目前Python使用率最高的文本处理工具>一文0、SnowNLP包 用于中文文本的处理
1.Jieba
2.NLTK
3.TextBlob
4.MBSP for Python
5.Gensim
6.langid.py
7. xTAS
8.Pattern
0、SnowNLP包 用于中文文本的处理
中文文本情感分析示例:
from snownlp import SnowNLP
text = u"我今天很快乐。我今天很愤怒。"
# 字母u文本编码格式是Unicode,
s = SnowNLP(text)
for sentence in s.sentences: #断句
print(sentence)
s1 = SnowNLP(s.sentences[0]) # 此处不能写s1 = s.sentences[0],需转化为SnowNLP格式才能下一步语句
s1.sentiments
text2 = '这个东西很垃圾'
s2 = SnowNLP(text2) #输出0.21406279508712744
# SnowNLP和textblob的计分方法不同。SnowNLP的情感分析取值,
# 表达的是“这句话代表正面情感的概率”
1.Jieba
【结巴中文分词】做最好的 Python 中文分词组件
其功能包括支持三种分词模式(精确模式、全模式、搜索引擎模式),支持繁体分词,支持自定义词典等。
2.NLTK
【NLTK】一个构建Python程序以使用人类语言数据的领先平台,被称为“使用Python进行教学和计算语言学工作的绝佳工具”,以及“用自然语言进行游戏的神奇图书馆”。
3.TextBlob 用于英文文本的处理
【TextBlob】是一个用于处理文本数据的Python(2和3)库。它为潜入常见的自然语言处理(NLP)任务提供了一个简单的API,例如词性标注,名词短语提取,情感分析,分类,翻译等。
英文文本情感分析示例:
from textblob import TextBlob
text = "I am happy today. I feel sad today."
blob = TextBlob(text)
blob.sentences
# 用于断句 输出:[Sentence("I am happy today."), Sentence("I feel sad today.")]
blob.sentences[0].sentiment
# 输出:Sentiment(polarity=0.8, subjectivity=1.0)
# 情感极性0.8,主观性1.0。说明一下,情感极性的变化范围是[-1, 1],-1代表完全负面,1代表完全正面。
blob.sentences[1].sentiment
# 输出:Sentiment(polarity=-0.5, subjectivity=1.0)
blob.sentiment
# 用于判断整句情感极性。输出Sentiment(polarity=0.15000000000000002, subjectivity=1.0)
4.MBSP for Python
【MBSP】是一个文本分析系统,基于CLiPS和ILK开发的基于TiMBL和MBT内存的学习应用程序。它提供了用于标记化和句子分裂,词性标注,分块,词形还原,关系查找和介词短语附件的工具。
5.Gensim
【Gensim】是一个免费的Python库可扩展的统计语义
分析纯文本文档的语义结构
检索语义相似的文档
6.langid.py
【langid.py 】是一个独立的语言标识(LangID)工具。接受过97种语言的预训练(ISO 639-1代码),培训数据来自5个不同的来源:JRC-Acquis、ClueWeb 09、维基百科、路透社RCV2和Debian i18n。
7. xTAS
【 xTAS】是基于Celery的分布式文本分析套件。部分xtas使用GPL许可软件,例如Stanford NLP工具,以及可能产生额外限制的数据集,检查文档中的各个功能。
8.Pattern
【Pattern】是Python编程语言的Web挖掘模块。它具有数据挖掘工具(谷歌,Twitter和维基百科API,网络爬虫,HTML DOM解析器),自然语言处理(词性标注,n-gram搜索,情感分析,WordNet),机器学习(矢量)空间模型,聚类,SVM),网络分析和可视化。