python3结巴
Ⅰ 在python 环境下,使用结巴分词,自动导入文本,分词,提取关键词.脚本 大侠给个
#-*-coding:UTF-8-*-
importjieba
__author__='lpe234'
seg_list=jieba.cut("我来到北京天安门",cut_all=True)
print','.join(seg_list)
...
Loadingmodelfromcache/var/folders/sv//T/jieba.cache
我,来到,北京,天安,天安门
Loadingmodelcost0.433seconds.
.
Processfinishedwithexitcode0
Ⅱ python问题
#python3
importre
importsys
a='''我是中国人
巴林公主将于今日举行婚礼'''
b='''我
我是
是中国人
中国人
我是中国
人
巴林
公主
将
于
今日
举行
婚礼
举行婚礼'''
b=b.splitlines()
defsolve(a=a,b=b,file=sys.stdout):
def_f(s,start,temp=[]):
forpinb:
ifs[start:].startswith(p):
temp.append(p)
end=start+len(p)+1
ifend>=len(s):
file.write(str(temp)+' ')
temp.pop()
return
else:
_f(s,end,temp)
temp.pop()
forsina.splitlines():
_f(s,0)
>>>solve()
['我','是中国人']
['我是','中国人']
['我是中国','人']
['巴林','公主','将','于','今日','举行','婚礼']
['巴林','公主','将','于','今日','举行婚礼']
Ⅲ 怎么是用python 语言 使用结巴分词 呢
Python代码
#encoding=utf-8
importjieba
seg_list=jieba.cut("我来到北京清华大学",cut_all=True)
print"FullMode:","/".join(seg_list)#全模式
seg_list=jieba.cut("我来到北京清华大学",cut_all=False)
print"DefaultMode:","/".join(seg_list)#默认模式
seg_list=jieba.cut("他来到了网易杭研大厦")
print",".join(seg_list)
输出:
FullMode:我/来/来到/到/北/北京/京/清/清华/清华大学/华/华大/大/大学/学
DefaultMode:我/来到/北京/清华大学
他,来到,了,网易,杭研,大厦(此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
Ⅳ 一个txt文档,已经用结巴分词分完词,怎么用python工具对这个分完词的文档进行计算统计词频,求脚本,非
#!/usr/bin/envpython3
#-*-coding:utf-8-*-
importos,random
#假设要读取文件名为aa,位于当前路径
filename='aa.txt'
dirname=os.getcwd()
f_n=os.path.join(dirname,filename)
#注释掉的程序段,用于测试脚本,它生成20行数据,每行有1-20随机个数字,每个数字随机1-20
'''
test=''
foriinrange(20):
forjinrange(random.randint(1,20)):
test+=str(random.randint(1,20))+''
test+=' '
withopen(f_n,'w')aswf:
wf.write(test)
'''
withopen(f_n)asf:
s=f.readlines()
#将每一行数据去掉首尾的空格和换行符,然后用空格分割,再组成一维列表
words=[]
forlineins:
words.extend(line.strip().split(''))
#格式化要输出的每行数据,首尾各占8位,中间占18位
defgeshi(a,b,c):
returnalignment(str(a))+alignment(str(b),18)+alignment(str(c))+' '
#中英文混合对齐,参考http://bbs.fishc.com/thread-67465-1-1.html,二楼
#汉字与字母格式化占位format对齐出错对不齐汉字对齐数字汉字对齐字母中文对齐英文
#alignment函数用于英汉混合对齐、汉字英文对齐、汉英对齐、中英对齐
defalignment(str1,space=8,align='left'):
length=len(str1.encode('gb2312'))
space=space-lengthifspace>=lengthelse0
ifalignin['left','l','L','Left','LEFT']:
str1=str1+''*space
elifalignin['right','r','R','Right','RIGHT']:
str1=''*space+str1
elifalignin['center','c','C','Center','CENTER','centre']:
str1=''*(space//2)+str1+''*(space-space//2)
returnstr1
w_s=geshi('序号','词','频率')
#由(词,频率)元组构成列表,先按频率降序排序,再按词升序排序,多级排序,一组升,一组降,高级sorted
wordcount=sorted([(w,words.count(w))forwinset(words)],key=lambdal:(-l[1],l[0]))
#要输出的数据,每一行由:序号(占8位)词(占20位)频率(占8位)+' '构成,序号=List.index(element)+1
for(w,c)inwordcount:
w_s+=geshi(wordcount.index((w,c))+1,w,c)
#将统计结果写入文件ar.txt中
writefile='ar.txt'
w_n=os.path.join(dirname,writefile)
withopen(w_n,'w')aswf:
wf.write(w_s)
Ⅳ python中怎样处理汉语的同义词用结巴分词
python中文分词:结巴分词
中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词。其基本实现原理有三点:
基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)
采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法
安装(Linux环境)
下载工具包,解压后进入目录下,运行:python setup.py install
模式
默认模式,试图将句子最精确地切开,适合文本分析
全模式,把句子中所有的可以成词的词语都扫描出来,适合搜索引擎
接口
组件只提供jieba.cut 方法用于分词
cut方法接受两个输入参数:
第一个参数为需要分词的字符串
cut_all参数用来控制分词模式
待分词的字符串可以是gbk字符串、utf-8字符串或者unicode
jieba.cut返回的结构是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode),也可以用list(jieba.cut(...))转化为list
实例
#! -*- coding:utf-8 -*-
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all = True)
print "Full Mode:", ' '.join(seg_list)
seg_list = jieba.cut("我来到北京清华大学")
print "Default Mode:", ' '.join(seg_list)
Ⅵ python3 进行结巴分词时可以并行处理吗
下面这个程序是对一个文本文件里的内容进行分词的程序:test.py
[python] view plain
#!/usr/bin/python
#-*- encoding:utf-8 -*-
import jieba #导入jieba模块
def splitSentence(inputFile, outputFile):
fin = open(inputFile, 'r') #以读的方式打开文件
fout = open(outputFile, 'w') #以写得方式打开文件
for eachLine in fin:
line = eachLine.strip().decode('utf-8', 'ignore') #去除每行首尾可能出现的空格,并转为Unicode进行处理
wordList = list(jieba.cut(line)) #用结巴分词,对每行内容进行分词
outStr = ''
for word in wordList:
outStr += word
outStr += '/ '
fout.write(outStr.strip().encode('utf-8') + '\n') #将分词好的结果写入到输出文件
fin.close()
fout.close()
splitSentence('myInput.txt', 'myOutput.txt')
写完程序之后,在Linux重点输入:python test.py即可运行程序进行分词。
Ⅶ 请问python的结巴jieba为什么提示:MoleNotFoundError: No mole named 'jieba'
朋友,你电脑里面有好几个版本的python了,你安装jieba的版本是3.6.4,
你打开的idle是3.6.5,所以这个版本找不到jieba的路径咯。
Ⅷ 怎么给python安装结巴分词
pip安装
下载包后放到python的目录下
大约记得是Lib/sxxxx-txxxx/这
Ⅸ 我Python3.8.0自带的IDLE中可以使用jieba,为什么Pycharm不行
这种找不到包的情况,基本都是环境问题
就是你安装结巴分词的Python环境,跟你pycharm中建项目的环境不是同一个,你可以看看设置,pycharm里的解释器用的是哪个,估计是虚拟的新环境,虚拟环境的py基本没有第三方库,
你要做的是把解释器路径指向你装包的那个
Ⅹ python3怎么使用结巴分词
下面这个程序是对一个文本文件里的内容进行分词的程序:test.py
[python] view plain
#!/usr/bin/python
#-*-encoding:utf-8-*-
importjieba#导入jieba模块
defsplitSentence(inputFile,outputFile):
fin=open(inputFile,'r')#以读的方式打开文件
fout=open(outputFile,'w')#以写得方式打开文件
foreachLineinfin:
line=eachLine.strip().decode('utf-8','ignore')#去除每行首尾可能出现的空格,并转为Unicode进行处理
wordList=list(jieba.cut(line))#用结巴分词,对每行内容进行分词
outStr=''
forwordinwordList:
outStr+=word
outStr+='/'
fout.write(outStr.strip().encode('utf-8')+' ')#将分词好的结果写入到输出文件
fin.close()
fout.close()
splitSentence('myInput.txt','myOutput.txt')
写完程序之后,在Linux重点输入:python test.py即可运行程序进行分词。
输入的文件内容如下所示:
注意:第11行的 jieba.cut()返回的结构是一个可迭代的generator,可以用list(jieba.cut(...))转化为list