玖叶教程网

前端编程开发入门

使用Python对文本进行分词的一些准备工作

提到分词,那么最常用的库就是jieba了。

文本分析中一个重要的准备工作就是分词。所谓分词就是把一个句子切分成一个个词组。例如:

import jieba

str1 = '2024年,公司决定启动IPO'

print(jieba.lcut(str1))

输出:

['2024', '年', ',', '公司', '决定', '启动', 'IPO']

在分词之前,我们可以进行一些准备工作,使得分词之后的结果更符合我们的预期。

首先,加载对应领域的词库。公司类研究可以用一些财经词库,词库在输入法的网站会有得下载,使用下面的语句可以加载对应的词库:

jieba.load_userdict('财经词库.txt')

这会加载路径下的词库文件,加载后,一些本来会被分开的词语就会被更好的区分为一个整体,例如:

import jieba

str1 = '委托候选人名单'

print(jieba.lcut(str1))

jieba.load_userdict('财经词库.txt')

print('加载词库后')
print(jieba.lcut(str1))

输出结果:

可以看到,加载词库后,这个委托候选人名单并没有被分开。jieba库也提供了一些微调的方案。如:

  • 使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
  • 使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。

其次,使用停用词,筛选掉一些没有意义的词汇。

停用词库网上有许多,通常是一些无意义的词语,如语气词等等,例如这是在网上找到的停用词表:

通常,单个字符通常含有的含义也非常有限,我们也会将他去除。所以,我们可以采取这样的方式:

import jieba

stop_word = []
with open('stop_word.txt', 'r', encoding='utf-8')as f:
    for i in f.readlines():
        stop_word.append(i.replace('\n', '').strip())
# 加载停用词

def m_cut(intxt):
    return [w for w in jieba.cut(intxt)
            if w not in stop_word and len(w) > 1]
            #筛选掉在停用词中的,且长度为1的词语。

我们就可以使用编写好的m_cut进行分词了。

至此,准备工作基本上准备就绪,可以开展分词工作了。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言