栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于jieba和哈工大信息检索研究中心同义词词林扩展版的同义词替换安装与测试

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于jieba和哈工大信息检索研究中心同义词词林扩展版的同义词替换安装与测试

库安装: 1.命令提示符中安装,建议使用国内地址进行安装:
pip install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple/

阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

2.Pycharm中安装库

添加国内镜像地址后搜索安装,在我上一篇文章中有讲怎么添加安装。

在Pycharm中安装及测试PaddleOCR_哒哒哒敲敲敲的博客-CSDN博客https://blog.csdn.net/m0_60321191/article/details/125388501?spm=1001.2014.3001.5501只要搜索jieba就可以

准备同义词词林:

我用的是哈工大信息检索研究中心同义词词林扩展版,官网的下载链接已经失效,站内的资源都要收费,我会上传一份,供大家免费下载。

哈工大信息检索研究中心同义词词林扩展版-Python文档类资源-CSDN文库https://download.csdn.net/download/m0_60321191/85847971

jieba库测试:

jieba库有三种分词模式

代码:

s = '这是一段基于jieba的分词测试文本'

l = jieba.lcut(s, cut_all=True) #'cut_all=True'全模式,默认为False
print('全模式:',l)

l = jieba.lcut(s) #精确模式
print('精确模式:', l)

l = jieba.lcut_for_search(s) #搜索引擎模式
print('搜索引擎模式:', l)

结果:

全模式: ['这', '是', '一段', '基于', 'jieba', '的', '分词', '测试', '文本']
精确模式: ['这是', '一段', '基于', 'jieba', '的', '分词', '测试', '文本']
搜索引擎模式: ['这是', '一段', '基于', 'jieba', '的', '分词', '测试', '文本']

同义词替换:

代码:

import random

import jieba


# 将词林转换为一个词典
def dict(txt=r'D:Python同义词替换_jiebatihuan.txt'):
    dict = {}
    # 将词林文件逐行读取
    for i in open(txt, 'r'):
        values = []
        s = ''
        # 将第9后面的文字切割好转化为字典的值
        for j in i[9:]:
            if j == ' ' or j == 'n':
                values.append(s)
                s = ''
                continue
            else:
                s += j
        dict[i[:7]] = values
    return dict


# 从词典中选取一个随机的同义词
def get_new_word(dict={}, word=''):
    # 读取词典的值
    for i in dict.values():
        # 比较要替换的词和字典值的第一个词是否相同
        if word == i[0]:
            # 如果字典中只有一个词,则输出原来的词
            if len(i) == 1:
                break
            # 否则输出除原来词以外的随机词
            else:
                i.remove(word)
                word = random.choice(i)
                break
        else:
            continue
    return word


# 进行同义词替换
def repalce_words(t=''):
    l = jieba.lcut(t)
    new_l = []
    # 将替换后的词加到新列表中
    for i in l:
        new_l.append(get_new_word(dict(r'D:Python同义词替换_jiebatihuan.txt'), i))
    s = ''
    # 读取新列表中的词
    for i in new_l:
        s += i
    return s


if __name__ == '__main__':
    print(repalce_words('听我说谢谢你,因为有你,温暖了四季'))

输出结果:

听俺说多谢若,为有着公,温暖矣四时

总结:

测试过以后发现效果不是很理想,后来又用了synonyms,效果好一点,下一期会写synonyms的安装及使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号