file_object2=open('D:\A仲敏2015\python_code\\advicecsv')read()split('\n') #一行行的读取内容
Rs2=[] #建立存储分词的列表
for i in range(len(file_object2)):
result=[]
seg_list = jiebacut(file_object2[i])
for w in seg_list :#读取每一行分词
resultappend(w)
Rs2append(result)#将该行分词写入列表形式的总分词列表
#写入CSV
file=open('D:\Azhongmin2015\python_code\\result2csv','w')
writer = csvwriter(file)#定义写入格式
writerwriterows(Rs2)#按行写入
#filewrite(str(Rs))
fileclose()
#! python3
# -- coding: utf-8 --
import os, codecs
import jieba
from collections import Counter
def get_words(txt):
seg_list = jiebacut(txt)
c = Counter()
for x in seg_list:
if len(x)>1 and x != '\r\n':
c[x] += 1
print('常用词频度统计结果')
for (k,v) in cmost_common(100):
print('%s%s %s %d' % (' '(5-len(k)), k, ''int(v/3), v))
if __name__ == '__main__':
with codecsopen('19dtxt', 'r', 'utf8') as f:
txt = fread()
get_words(txt)
在Python 3x的版本230中,jieba是一个第三方中文分词库。它可以将一段中文文本分割成一个一个的词语,是中文自然语言处理的重要工具。如果要下载jieba,在终端或命令行中输入以下命令:pip install jieba。这个命令会在Python的包管理器pip中搜索jieba并进行下载安装。当安装成功后,就可以在Python中使用jieba库了。jieba分词库的使用方法非常简单,可以根据需要进行分词、关键词提取、词性标注等 *** 作。jieba的分词效果也比较准确,被广泛应用于文本挖掘、自然语言处理等领域。
首先安装jieba模块,pip install jieba
然后在程序里引用,import jieba
import jiebaseg_list = jiebacut("我来到北京清华大学,我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ "join(seg_list)) # 全模式
# 输出: Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学/ / / 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
# -- coding: utf-8 --
import jieba
import jiebaposseg as pseg
import jiebaanalyse
#jiebaload_userdict('userdicttxt')#jieba默认有一个dicttxt词库,但可以根据自己需要加入自己的词条
str1 = "训练一个可进行N维分类的网络的常用方法是使用多项式逻辑回归"
str2 = "可以尝试修改网络架构来准确的复制全连接模型"
str3 = "模型的目标函数是求交叉熵损失和所有权重衰减项的和,loss()函数的返回值就是这个值"
seg_list = jiebacut(str1,cut_all =True) #全模式
print("/"join(seg_list))
result = psegcut(str1)
result2 = jiebacut(str2) #精准模式
result3 = jiebaanalyseextract_tags(str3,4) #关键词提取
result4 = jiebacut_for_search(str3) #搜索引擎模式
for w in result:
print(wword,wflag)
print(" "join(result2))
print(" "join(result3))
print(" "join(result4))
自然语言处理(NLP)是机器学习重要分支之一,主要应用于篇章理解、文本摘要、情感分析、知识图谱、文本翻译等领域。而NLP应用首先是对文本进行分词,当前中文分词器有Ansj、paoding、盘古分词等多种,而最基础的分词器应该属于jieba分词器(比较见下图)。
下面将分别应用R和python对jieba分词器在中文分词、词性标注和关键词提取领域的应用进行比较。
R实现
通过函数worker()来初始化分词引擎,使用segment()进行分词。有四种分词模式:最大概率法(MP)、隐马尔科夫模型(HMM)、混合模型(Mix)及索引模型(query),默认为混合模型。具体可查看help(worker)
#installpackages('jiebaR')library(jiebaR)mixseg <- worker()segment( "这是一段测试文本" , mixseg ) #或者用以下 *** 作mixseg['这是一段测试文本']mixseg <= "这是一段测试文本"
python实现
python中需安装jieba库,运用jiebacut实现分词。cut_all参数为分词类型,默认为精确模式。
import jiebaseg_list = jiebacut(u"这是一段测试文本",cut_all = False)print("Full mode: "+ ","join(seg_list)) #默认精确模式
无论是R还是python都为utf—8编码。
R实现
可以使用<=tagger 或者tag 来进行分词和词性标注,词性标注使用混合模型模型分词,标注采用和 ictclas 兼容的标记法。
words = "我爱北京天安门"tagger = worker("tag") #开启词性标注启发器tagger <= words # r v ns ns # "我" "爱" "北京" "天安门"
python实现
#词性标注import jiebaposseg as psegwords = psegcut("我爱北京天安门")for word,flag in words: print('%s, %s' %(word,flag))
R实现
R关键词提取使用逆向文件频率(IDF)文本语料库,通过worker参数“keywords”开启关键词提取启发器,topn参数为关键词的个数。
keys = worker("keywords",topn = 5, idf = IDFPATH)keys <= "会议邀请到美国密歇根大学(University of Michigan, Ann Arbor)环境健康科学系副教授奚传武博士作题为“Multibarrier approach for safe drinking waterin the US : Why it failed in Flint”的学术讲座,介绍美国密歇根Flint市饮用水污染事故的发生发展和处置等方面内容。讲座后各相关单位同志与奚传武教授就生活饮用水在线监测系统、美国水污染事件的处置方式、生活饮用水老旧管网改造、如何有效减少消毒副产物以及美国涉水产品和二次供水单位的监管模式等问题进行了探讨和交流。本次交流会是我市生活饮用水卫生管理工作洽商机制运行以来的又一次新尝试,也为我市卫生计生综合监督部门探索生活饮用水卫生安全管理模式及突发水污染事件的应对措施开拓了眼界和思路。"#结果:# 488677 234784 221402 20326 185354 # "饮用水" "Flint" "卫生" "水污染" "生活"
python实现
python实现关键词提取可运用TF-IDF方法和TextRank方法。allowPOS参数为限定范围词性类型。
#关键词提取import jiebaanalysecontent = u'会议邀请到美国密歇根大学(University of Michigan, Ann Arbor)环境健康科学系副教授奚传武博士作题为“Multibarrier approach for safe drinking waterin the US : Why it failed in Flint”的学术讲座,介绍美国密歇根Flint市饮用水污染事故的发生发展和处置等方面内容。讲座后各相关单位同志与奚传武教授就生活饮用水在线监测系统、美国水污染事件的处置方式、生活饮用水老旧管网改造、如何有效减少消毒副产物以及美国涉水产品和二次供水单位的监管模式等问题进行了探讨和交流。本次交流会是我市生活饮用水卫生管理工作洽商机制运行以来的又一次新尝试,也为我市卫生计生综合监督部门探索生活饮用水卫生安全管理模式及突发水污染事件的应对措施开拓了眼界和思路。'#基于TF-IDFkeywords = jiebaanalyseextract_tags(content,topK = 5,withWeight = True,allowPOS = ('n','nr','ns'))for item in keywords: print item[0],item[1] #基于TF-IDF结果# 饮用水 0448327672795# Flint 0219353532163# 卫生 0203120821773# 水污染 0186477211628# 生活 0170049997544
#基于TextRankkeywords = jiebaanalysetextrank(content,topK = 5,withWeight = True,allowPOS = ('n','nr','ns'))for item in keywords: print item[0],item[1] #基于TextRank结果:# 饮用水 10# 美国 0570564785973# 奚传武 0510738424509# 单位 0472841889334# 讲座 0443770732053
写在文后
自然语言处理(NLP)在数据分析领域有其特殊的应用,在R中除了jiebaR包,中文分词Rwordseg包也非常常用。一般的文本挖掘步骤包括:文本获取(主要用网络爬取)——文本处理(分词、词性标注、删除停用词等)——文本分析(主题模型、情感分析)——分析可视化(词云、知识图谱等)。本文是自然语言处理的第一篇,后续将分别总结下应用深度学习Word2vec进行词嵌入以及主题模型、情感分析的常用NLP方法。
参考资料
Introduction · jiebaR 中文分词 >
最复杂的就是这一行了:
(word for word in jiebacut(line,HMM=True)if word not in stop and len(wordstrip())>1)
jiebacut(line)将一行字符串,分割成一个个单词
word for word in jiebacut(line,HMM=True)是一个Python的表理解,相当于for循环遍历分割好的一个个单词
if word not in stop and len(wordstrip())>1这仍然是表理解的一部分,如果满足条件,就把单词加入到一个新的列表中,如果不满足就丢弃,
word not in stop单词不在停用词当中
len(wordstrip())>1单词去掉首尾的空格、标点符号后的长度大于1。
以上就是关于怎么使用python中的jieba对csv 文件内容分词后导入TXT中全部的内容,包括:怎么使用python中的jieba对csv 文件内容分词后导入TXT中、如何用python和jieba分词,统计词频、版本23.0下载jieba是什么命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)