中文词法分析神器,玩转 Thulac

文摘   2024-11-20 19:58   山东  

今天聊点硬货,教大家用 Thulac 这套清华出的中文词法分析工具包,搞定中文分词、词性标注啥的。听起来高深?别急,咱一步步拆开,学完就能直接上手撸代码。

安装 Thulac

先装上工具再说,Thulac 的安装其实挺简单。

Python 环境都配好了吧?有些小伙伴可能懵:“啥是 Python 环境?” 别急,简单讲,Python 就是 Thulac 跑起来的发动机,没这玩意儿,啥都动不了。

pip install thulac

一行命令搞定。如果网络不给力,换个国内镜像,比如:

pip install thulac -i https://pypi.tuna.tsinghua.edu.cn/simple

温馨提示:别漏了 pip 和 -i,漏一个,报错怼你没商量。

分词:拆字成词小能手

分词就是把长串的中文句子拆成一个个小词。举个例子:

import thulac
thu = thulac.thulac()text = "清华大学很牛,推出了Thulac中文词法分析工具。"result = thu.cut(text, text=True)print(result)

运行一下,输出大概是这样:

清华大学/nt 很/d 牛/a ,/w 推出/v 了/u Thulac/n 中文/n 词法/n 分析/v 工具/n 。/w

看懂了吧?句子被拆成了一个个词,还带了 词性标注(比如 /n 表示名词,/v 表示动词)。这就很方便后续分析,比如统计词频、过滤特定词汇啥的。

温馨提示:默认结果是字符串,如果想要分词后的列表形式,把 text=True 改成 text=False 就行。

词性标注:帮词分门别类

词性标注干啥的?简单说就是告诉你每个词的角色。像这样:

  • 名词:人、事、物(比如“清华大学”)

  • 动词:行为动作(比如“推出”)

  • 形容词:描述性词语(比如“牛”)

有时候,你可能只关心某种词,比如找出句子里的名词,可以这样:

thu = thulac.thulac()text = "清华大学很牛,推出了Thulac中文词法分析工具。"result = thu.cut(text, text=False)
nouns = [word[0] for word in result if word[1] == 'n']print(nouns)

输出是这样的:

['清华大学', 'Thulac', '中文', '词法', '工具']

这个逻辑啥意思?分词后生成的是 [词, 词性] 的列表,我们把词性是 'n' 的全挑出来。

用户词典:自定义你的词语

有时候,默认的分词规则不够灵活,比如 “OpenAI” 可能被拆成 “Open”和 “AI”,咋办?Thulac 支持 用户词典,自己加规则。

创建个 user_dict.txt 文件,内容像这样:

OpenAIChatGPT

然后加载:

thu = thulac.thulac(user_dict="user_dict.txt")text = "OpenAI开发了ChatGPT,很有趣。"result = thu.cut(text, text=True)print(result)

输出效果:

OpenAI/n 开发/v 了/u ChatGPT/n ,/w 很/d 有趣/a 。/w

是不是顺眼多了?

温馨提示:用户词典的每一行是一个词,注意别写错。

批量处理:让机器跑得更快

如果你有一堆文本要处理,单个单个分词就太慢了。Thulac 提供了文件批量处理模式,一次搞定:

thulac -i input.txt -o output.txt

input.txt 是你的原始文本,output.txt 是分词后的结果。

温馨提示:文件路径要写对,否则工具可能“假装看不到”。

实际应用场景

  1. 文本分类:比如判断用户评论是正面的还是负面的,用分词结果做输入数据效果更好。

  2. 搜索引擎:分词能帮你提高搜索精准度,比如“清华大学排名”和“清华大学录取分数”会被拆成不同的关键词。

  3. 关键词提取:把文章里的重点词挑出来,省得你人工挑半天。

踩坑提示

  1. 版本问题:Thulac 需要 Python 3.x,如果用的是 2.x,可能会各种奇怪报错。

  2. 编码问题:处理中文文件时,确保是 UTF-8 编码,否则分词结果可能是乱码。

  3. 词性标注不全:有些词的词性 Thulac 不支持自定义,遇到这种情况,只能另想办法。

用 Thulac,中文处理变得省时省力,效果还不错。现在轮到你试试了,拿自己的句子跑两遍,感受下这工具的威力

668号厅苏女士
668小苏专业吐槽副业试片 天天追新剧,偶尔补老番 感谢关注,喜欢就留下吧~
 最新文章