NLP基础之分词

jieba 分词

其实 NLP 的第一个基础工具是正则表达式,熟悉规则就行,当然熟练是需要练习的。

1. jieba 三种分词模式

import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

在这里插入图片描述


2. 词性标注

import jieba.posseg as pseg
words = pseg.cut('结巴分词是使用广泛的分词工具,具有以下的优点')
time.sleep(2)
for word, flag in words:
    print('%s %s' %(word, flag))

在这里插入图片描述

3.加载自定义字典准确分词,动态调整词频和字典

加载自定义字典

example: 一个医疗相关的文档
在这里插入图片描述
用来分词,可能会分的不准确

import jieba

if __name__ == "__main__":
    with open('new1.txt', 'r', encoding='utf-8') as f:
        for line in f.readlines():
            word = jieba.cut(line)
            while True:
                try:
                    print(next(word))
                except:
                    break

在这里插入图片描述
从结果看,第一个词‘奥沙利铂’是一种药名,被分开了,类似的还有‘二氨环己烷’。
那即导入自定义的字典,只要在txt文件中添加这些词就可以
在这里插入图片描述
加入一句代码

jieba.load_userdict('1.txt')

在这里插入图片描述
从运行结果可知这些词就被分出来了

用正则表达式
例如文本有这样一句话在这里插入图片描述
分词出来可能是这样的
在这里插入图片描述
为了使这个II期,III期被分好,可以用正则表达式匹配

    regu = u'(?:[^\u4e00-\u9fa5()*&...%$.,。!]){1,5}期'
    match = re.compile(regu)
    with open('new1.txt', 'r', encoding='utf-8') as f:
        for line in f.readlines():
            res_find = match.findall(line)
            if res_find:
                line = match.sub('FLAG1', line)
            word = jieba.cut(line)
            res = ''
            index = 0
            for item in word:
                if item == 'FLAG1':
                    item = res_find[index]
                    index += 1
                res += ' ' + item
            print(res)

结果就被分出来了在这里插入图片描述


4. 命名实体识别(人名、地名、机构名…)

NER(Named Entity Recognition)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值