使用清华thulac中文分词分析工具_thulac词性标注_徐孟奇的博客-程序员宅基地

技术标签: 自然语言处理  知识图谱  

1 安装

由于用到了分词,需要给已经处理成每行内容只含汉字的txt文本进行分词,所以想到用thulac试一下。环境是anaconda+pycharm+python 3.6.
使用pip安装:

pip install thulac

在这里插入图片描述

2 使用

pycharm中新建python文件,导入thulac包,然后输入命令:

import thulac

thu1 = thulac.thulac(seg_only=True)  #只进行分词,不进行词性标注
thu1.cut_f("input.txt", "output.txt")   #对input.txt文件内容进行分词,输出到output.txt

2.1 遇到的问题解决

执行上面命令时提示编码问题:
在这里插入图片描述
在查看文本文档确实都是UTF-8编码格式后,点击thulac包下的那个__init__文件,在提示的189行上面,188,187行看到文件读写没有指定编码格式,所以添加指定格式如下:
在这里插入图片描述
然后就能成功运行了。

2.2 使用分词和词性标注

在同目录下生成output.txt文件,分词成功;
在这里插入图片描述
使用默认模式,词性标注加分词,再看下结果:

import thulac
thu1 = thulac.thulac()  #默认模式,进行词性标注
thu1.cut_f("input.txt", "output2.txt")   #对input.txt文件内容进行分词,输出到output.txt

这个会使用时间长,结果对比如下:
在这里插入图片描述

2.3 清除文本中的空行


"""
读取存在空行的文件,删除其中的空行,并将其保存到新的文件中
"""

with open('input.txt','r',encoding = 'utf-8') as fr,open('new.txt','w',encoding = 'utf-8') as fd:
        for text in fr.readlines():
                if text.split():#split()默认使用空格进行分割,中间无论多少空格都切掉。
                        fd.write(text)
        print('输出成功....')

这样文本中所有的空行清除了。

3 thulac使用方式

3.1 使用示例

python版

代码示例1
import thulac

thu1 = thulac.thulac() #默认模式
text = thu1.cut(“我爱北京天安门”, text=True) #进行一句话分词
print(text)
代码示例2
thu1 = thulac.thulac(seg_only=True) #只进行分词,不进行词性标注
thu1.cut_f(“input.txt”, “output.txt”) #对input.txt文件内容进行分词,输出到output.txt

3.2 接口参数

  • thulac(user_dict=None, model_path=None, T2S=False, seg_only=False, filt=False, deli=’_’) 初始化程序,进行自定义设置

      user_dict	      	设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码
      T2S					默认False, 是否将句子从繁体转化为简体
      seg_only	   		默认False, 时候只进行分词,不进行词性标注
      filt		   		默认False, 是否使用过滤器去除一些没有意义的词语,例如“可以”。
      model_path	 	    设置模型文件所在文件夹,默认为models/
      deli	 	      	默认为‘_’, 设置词与词性之间的分隔符
    
  • rm_space 默认为False, 是否去掉原文本中的空格后再进行分词

  • cut(文本, text=False) 对一句话进行分词

     text   默认为False, 是否返回文本,不返回文本则返回一个二维数组([[word, tag]..]),seg_only模式下tag为空字符。
    
  • cut_f(输入文件, 输出文件) 对文件进行分词

  • run() 命令行交互式分词(屏幕输入、屏幕输出)

3.3 guihub 地址

https://github.com/thunlp/THULAC-Python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013222658/article/details/106004593

智能推荐

mPaas上线应用检测_mpaas接口测试地址_阿里开发者的博客-程序员宅基地

简介:mPaas上线应用检测1. 背景随着越来越多的金融行业基于mPaas[1]搭建并上线新的App,App的上线质量也成为各个客户关注的重点。上线前检测哪些项目,如何检测,检测数据指标包括哪些成为我们思考的主要方向。借着上次去XX农信客户去做线上功能检测,加上之前多个mPaas历史项目踩过的坑,将App上线前mPaas相关检测内容整理沉淀如下。2. 检测方向2.1 安全性2.1.1 RPC是否开启国密加密对应金融性质的App来说,数据通信安全至关重要,mPaas已经支持 ECC、RSA 和国密(SM2)三_mpaas接口测试地址

操作系统——存储管理-段式存储组织——2020.11.25_段式存储管理读写操作合法怎么判断是否正确_Blockchain_KT的博客-程序员宅基地

存储管理-段式存储组织一丶段式存储——嗟险阻,叹飘零。关山万里作雄行——一丶段式存储按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样我们在进行页式存储时,由于页内地址都是一样的,所以我们只需要去需要页号和页帧号就行了但是我们段氏存储时,由于分段的大小不一,所以我们必须了解段的起始位置,和整个段的长度,并且标注好段号这样才能找到相应的内存地址由于段的大小不一致,所以会存在一些碎片段地址:(段号,不能超过段长)-> 合法地址和不合法地址的考察优点:多道程序共_段式存储管理读写操作合法怎么判断是否正确

CSU Problem 1777 大还是小?——湖南省第十一届大学生计算机程序设计竞赛_湖南省第十一届大学生程序设计大赛题解_queuelovestack的博客-程序员宅基地

CSU Problem 1777 大还是小?——湖南省第十一届大学生计算机程序设计竞赛_湖南省第十一届大学生程序设计大赛题解

数据结构和算法的关系和区别_Autopilot office的博客-程序员宅基地

由于大量数据结构教程中都将数据结构的知识和算法掺杂起来讲,使很多初学者认为数据结构就是在讲算法,这样理解是不准确的。数据结构和算法之间完全是两个相互独立的学科,如果非说它们有关系,那也只是互利共赢、“1+1>2”的关系。最明显的例子,如果你认为数据结构是在讲算法,那么大学我们还学《算法导论》,后者几乎囊括了前者使用的全部算法,有什么必要同时开设这两门课程呢?我们还可以从分析问题的角度去..._数据结构和算法的关系和区别

db 分贝 增益 什么意思 多少倍_音频3db和6db增益_生活就是那么无聊的博客-程序员宅基地

http://blog.csdn.net/zmq5411/article/details/6215951dB(Decibel,分贝) 是一个纯计数单位,本意是表示两个量的比值大小,没有单位。在工程应用中经常看到貌似不同的定义方式(仅仅是看上去不同)。对于功率,dB = 10*lg(A/B)。对于电压或电流,dB = 20*lg(A/B)。此处A,B代表参与比较的功率值或者电流、电压值。..._音频3db和6db增益

3. 无重复字符的最长子串(python3)_使用python3写代码无重复字符的最长子串_keep moving 123的博客-程序员宅基地

题目:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"..._使用python3写代码无重复字符的最长子串

随便推点

2-SAT模板(scc强连通模板)-poj3683-Priest John's Busiest Day_sccmoban_cokoro的博客-程序员宅基地

我最爱的《挑战程序设计竞赛么么哒》上的例题先放一下2-SAT模板。也就是给一堆布尔变量(就是要么是真的要么是假的的一堆变量),和一堆布尔方程,问能否通过选择这些变量是真的还是假的,使得所有布尔方程都成立。注意一下,因为是用scc跑强连通,所以下面这个既是2sat,又是强连通的模板。强连通还有tarjan方法可以求,这是模板地址tarjan强连通模板讲一下scc求_sccmoban

寒假集训作业(6)——动态规划初步_zhengnanlee的博客-程序员宅基地

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1223#include using namespace std;int money[8] = { 0, 1, 2, 5, 10, 20, 50, 100 };long int dp[8][251];int main(){ int

mysql5.7建表时报错clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by_可可keketrtr的博客-程序员宅基地

mysql5.7数据库在执行建表语句时报错:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause andcontains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on...

自家管理系统网络延迟严重,记一下当前的进展_anpiao0000的博客-程序员宅基地

自家管理系统网络延迟严重,记一下当前的进展 C/S架构,做成了伪B/S。性能测试过程中发现并发条件下存在比较严重的延时问题。某些几十K几百K的包,从服务端到客户端居然要走10s。 这只是一些偶然情况,在每个客户端的日志里,大概几百次交互中有一次,几...

浅谈Python基础篇_self.start_我的庄园的博客-程序员宅基地

一,列表、字典、集合、元组的使用from random import randint, sample# 列表解析data = [randint(-10, 10) for _ in xrange(10)]filter(lambda x: x >= 0, data)[x for x in data if x >= 0] #最快速# 字典解..._self.start

网络管理命令2 — Ipconfig 命令_酥行的博客-程序员宅基地

2、Ipconfig 命令 也是使用率非常高的一个命令,可用于显示系统的TCP/IP网络配置值,并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。通常是用来检验人工配置的TCP/IP设置是否正确。当我们所在的局域网使用了DHCP服务器,我们就很可能经常用ipconfig查看客户端的IP地址,以及其它的一些高级功能。 当你不记得参数选项时,可以输入”ipconfig ...

推荐文章

热门文章

相关标签