岑溪网站建设,wordpress数据库的名称,企业vi设计是什么意思啊,注册个网站怎么注册Github#xff1a;结巴分词地址 https://github.com/fxsjy/jieba 几种分词方法的简单使用#xff1a;一 . jieba安装、示例 pip install jieba#xff0c;jieba分词的语料是基于人民日报。分词示例1 import jieba
2
3 str1 江州市长江大桥
4 word_object jieba.cut(s…Github结巴分词地址 https://github.com/fxsjy/jieba 几种分词方法的简单使用 一 . jieba 安装、示例 pip install jiebajieba分词的语料是基于人民日报。 分词示例1 import jieba
2
3 str1 江州市长江大桥
4 word_object jieba.cut(str1) # 生成一个生成器对象
5 for each in word_object:
6 print each 我要的分词结果是“江州/市长/江大桥” 我需要自定义一个字典给“江大桥”设置一个较大的频次当我将 “江大桥” 频次设为2000时发现并不能切分出来 查看原始字典发现“长江大桥”频次3858所以在概率统计上远大于“江大桥”所以将“江大桥”频次设为1000万。但是实际是分不出来的必须很极端的设为20000 因为要保证P江州P市长P江大桥 P(江州P市P长江大桥加载用户字典jieba.load_userdict()jieba.load_userdict(userdict.txt) 2. jieba.cut参数cut(self, sentence, cut_allFalse, HMMTrue) method of jieba.Tokenizer instance The main function that segments an entire sentence that contains Chinese characters into seperated words. Parameter:- sentence: The str(unicode) to be segmented. 需要分词的字符串- cut_all: Model type. True for full pattern, False for accurate pattern. cut_all字段是分词的全模式和普通模式/默认模式- HMM: Whether to use the Hidden Markov Model. 是否使用HMM模式分词default True关于全模式和默认模式str1 u“江州市长江大桥”为例jieba.cut(str1, cut_allTrue) #全模式是将词可能生成的词完全切分出来 Output江州/ 州市/市长/长江/长江大桥/大桥 可以理解为所有可以切分成词的都会显示出来 尽可能多得分词jieba.cut(str1, cut_allFalse) Output:江州/市/长江大桥add_word(word, freqNone, tagNone) # 向词典添加词
del_word(word) # 删除词典中的词
suggest_freq(segment, tuneTrue) # 调整词频率 其他具体使用详见https://github.com/fxsjy/jieba二. Thulac安装和使用
Thulac 是清华大学的分词库也是基于HMM的分词器pip install thulac安装1 str1 u江州市长江大桥
2 import thulac
3 thu thulac.thulac()
4 word thu.cut(str1, textFalse)
5 for each in word:
6 print each[0], each[1] 结果如下图会显示分词结果和词性1 str1 u江州市长江大桥
2 import thulac
3 thu thulac.thulac()
4 word thu.cut(str1, textFalse) 对英文分词会将连一起的“字母和数字”切分出来 且常规英文空格也会切分出来参数
以下是helpthulac.thulac的doc介绍class thulac| Methods defined here:| | __init__(self, user_dictNone, model_pathNone, T2SFalse, seg_onlyFalse, filtFalse, max_length50000, deli_, rm_spaceFalse)| 初始化函数传入用户设置的参数并且根据参数初始化不同| 模型调入不同的.dat文件该文件存储了一个双数组trie树| user_nameNone, 设置用户词典用户词典中的词会被打上uw标签。词典中每一个词一行UTF8编码 model_pathNone, 设置模型文件所在文件夹默认为models/T2SFalse, 是否将句子从繁体转化为简体seg_onlyFalse, False时候只进行分词不进行词性标注filtFalse, 是否使用过滤器去除一些没有意义的词语例如“可以”。max_length50000,deli_, 默认为‘_’, 设置词与词性之间的分隔符rm_spaceFalse, 是否去掉原文本中的空格后再进行分词| | cut(self, oiraw, textFalse) | textFalse; 是否返回文本不返回则是个二维list (每一维度包含 词词性返回文本则是“分词_词性”组成的文本。| cut_f(self, input_file, output_file)| 对文件分词| cutline(self, oiraw)| | fast_cut(self, oiraw, textFalse)| # fast 接口 cut- fast_cut)| fast_cut_f(self, input_file, output_file)| # fast 接口 cut_f - fast_cut_f| foo(self, x) | # foo占位符表明某个变量、函数、命令不重要但有这个想法。| multiprocessing_cut_f(self, input_file, output_file, core0)| #多线程对文件分词| run(self)#交互式 屏幕input屏幕output词性解释具体示例详见https://github.com/thunlp/THULAC-Python#%E5%85%B6%E4%BB%96%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0三、snownlp安装、概述、示例
pip install snownlpsnownlp 是基于3-gram的词性标注、HMM模型的分词算法。 示例1 from snownlp import SnowNLP
2 str1 u江州市长江大桥
3 snow_obj SnowNLP(str1)
4 snow_obj.words # list 分词后返回一个分词结果的list
5 for each in snow_obj:
6 print each 结果如下图 参数、部分方法 1 from snownlp import SnowNLP
2 str1 u江州市长江大桥
3 snow_obj SnowNLP(str1)
4 snow_obj.words # list 分词后返回一个分词结果的list
5 for each in snow_obj:
6 print each
7 snow_obj.tags # 一维list内含元组词词性
8 snow_obj.sentiments # positive的概率
9 snow_obj.pinyin # 每个词转为拼音每个词构成list 其他方法详见https://github.com/isnowfy/snownlp 或helpSnowNLP查看四、yaha安装、简述、示例
pip install yahayaha中文分词 基于查找句子的最大概率路径来进行分词1 str1 u江州市长江大桥
2 from yaha import Cuttor
3 cuttor Cuttor() # 然后会加载字典
4 word cuttor.cut(str1) # 生成器对象
5 for each in word:
6 print word yaha分词最大的弊端就是对英文无法在做分词当遇到英文时会将英文分为每个字母。五、genius 1. 安装、简述和示例pip install geniusgenius 是一款开源中文分词器其基于条件随机场CRF算法的。这部分下次再写import re
from collections import Counter
import jiebadef cut_word(datapath):with open(datapath,r,encodingutf-8)as fp:string fp.read()data re.sub(r[\s\.\!\/_,$%^*(【】\]\[\-:;\\]|[——。、~#%……*]|[0-9], , string)word_list jieba.cut(data)print(type(word_list))return word_listdef static_top_word(word_list,top5):result dict(Counter(word_list))print(result)sortlist sorted(result.items(),keylambda x:x[1],reverseTrue)resultlist []for i in range(0,top):resultlist.append(sortlist[i])return resultlistdef main():datapath comment.txtword_list cut_word(datapath)Result static_top_word(word_list)print(Result)
main()