赞
踩
Py之SnowNLP:SnowNLP中文处理包的简介、安装和使用方法、案例应用之详细攻略
目录
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。
snownlp主要可以进行中文分词(算法是Character-Based Generative Model)、词性标注、情感分析、文本分类(原理是朴素贝叶斯)、转换拼音、繁体转简体、提取文本关键词(原理TextRank)、提取摘要(原理TextRank)、分割句子、文本相似(原理BM25)。
GitHub地址:GitHub - isnowfy/snownlp: Python library for processing Chinese text
pip install snownlp
- from snownlp import SnowNLP
-
- text = "我喜欢自然语言处理"
- s = SnowNLP(text)
- print(s.words) # ['我', '喜欢', '自然', '语言', '处理']
- from snownlp import SnowNLP
-
- text = "我喜欢自然语言处理"
- s = SnowNLP(text)
- print(s.tags) # [('我', 'r'), ('喜欢', 'v'), ('自然', 'n'), ('语言', 'n'), ('处理', 'v')]
-
-
-
- for word, tag in s.tags:
- print("Word = {}, Tag = {}\n".format(word, tag))
- from snownlp import SnowNLP
-
- text = "这个产品真的很棒!"
- s = SnowNLP(text)
- print("Sentiment score =", s.sentiments) # Sentiment score = 0.9833794352188775
- from snownlp import SnowNLP
-
- text = "自然语言处理"
- s = SnowNLP(text)
- print(s.pinyin) # ['zi', 'ran', 'yu', 'yan', 'chu', 'li']
- from snownlp import SnowNLP
-
- text = "後來我才知道你是真的愛我"
- s = SnowNLP(text)
- print(s.han) # 后来我才知道你是真的爱我
-
- from snownlp import SnowNLP
-
- text = "後來我才知道你是真的愛我"
- s = SnowNLP(text)
- print(s.han) # 后来我才知道你是真的爱我
-
-
- from snownlp import SnowNLP
-
- text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
- s = SnowNLP(text)
- print(s.summary(3)) # ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。']
- from snownlp import SnowNLP
-
- text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。"
- s = SnowNLP(text)
- print(s.tf) # {'自然': 1, '语言': 1, '处理': 1, '是': 1, '计算机': 1, '科学': 1, '领域': 1, '与': 1, '人工智能': 1, '中的': 1, '一个': 1, '重要': 1, '方向': 1}
- from snownlp import SnowNLP
-
- text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。"
- s = SnowNLP(text)
- print(s.tf) # {'自然': 1, '语言': 1, '处理': 1, '是': 1, '计算机': 1, '科学': 1, '领域': 1, '与': 1, '人工智能': 1, '中的': 1, '一个': 1, '重要': 1, '方向': 1}
- from snownlp import SnowNLP
-
- text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
- s = SnowNLP(text)
- print(s.topics) # [['语言', '自然'], ['计算机', '研究']]
- from snownlp import SnowNLP
-
- text1 = "我喜欢自然语言处理"
- text2 = "我讨厌自然语言处理"
- s1 = SnowNLP(text1)
- s2 = SnowNLP(text2)
- print(s1.similarity(s2)) # 返回两个文本的相似度
- from snownlp import SnowNLP
-
- text1 = "我喜欢自然语言处理"
- text2 = "我讨厌自然语言处理"
- s1 = SnowNLP(text1)
- s2 = SnowNLP(text2)
- print(s1.similarity(s2)) # 返回两个文本的相似度
- from snownlp import SnowNLP
-
- text = "我喜欢自然语言处理"
- s = SnowNLP(text)
- print(s.translate(to='en')) # I like natural language processing (假设存在翻译功能)
- from snownlp import SnowNLP
-
- text = "自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。"
- s = SnowNLP(text)
- print(s.sentences) # ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。']
- from snownlp import SnowNLP
-
- text = "自然语言处理"
- s = SnowNLP(text)
- print(s.pinyin_similarity("ziran yuyan chuli")) # 返回拼音相似度
现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg
目录下
- from snownlp import seg
- seg.train('data.txt')
- seg.save('seg.marshal')
- # from snownlp import tag
- # tag.train('199801.txt')
- # tag.save('tag.marshal')
- # from snownlp import sentiment
- # sentiment.train('neg.txt', 'pos.txt')
- # sentiment.save('sentiment.marshal')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。