python替换同义词 jieba替换同义词

python替换同义词 jieba替换同义词

0 描述:

在构建基于知识图谱的问答系统过程中,我们发现 知识图谱对于实体的识别是非常敏感的, 如果用户输入的关键词 不对(哪怕只差一个词) 知识图谱就找不到对应的三元组。

所以我们打算现将用户的输入做一个预处理 , 将一些同义词 手动 转化为 知识图谱的中标准输入。

1构建同义词文件txt

构建同义词文件tongyici_tihuan.txt,每一个同义词列为一行,每行第一个为希望分隔后呈现的词语,后几个为第一个词的同义词,用tab键分隔,比如:

年休假	年假	年休
北京	北平	首都

在这个例子里“北平 首都”都会被替换为 “北京”

2代码

# encoding=utf-8
import jieba
def tihuan_tongyici(string1):
    # tongyici_tihuan.txt是同义词表,每行是一系列同义词,用tab分割
    # 1读取同义词表:并生成一个字典。
    combine_dict = {}
    for line in open("tongyici_tihuan.txt", "r"):
        seperate_word = line.strip().split("\t")
        num = len(seperate_word)
        for i in range(1, num):
            combine_dict[seperate_word[i]] = seperate_word[0]

    # 2提升某些词的词频,使其能够被jieba识别出来
    jieba.suggest_freq("年假", tune = True)

    # 3将语句切分
    seg_list = jieba.cut(string1, cut_all = False)
    f = "/".join(seg_list).encode("utf-8")  # 不用utf-8编码的话,就不能和tongyici文件里的词对应上
    # print f

    # 4
    final_sentence = ""
    for word in f.split("/"):
        if word in combine_dict:
            word = combine_dict[word]
            final_sentence += word
        else:
            final_sentence += word
    # print final_sentence
    return final_sentence



string1 = '年假到底放几天?'
print tihuan_tongyici(string1)

  • 2
    点赞
  • 36
    收藏
  • 打赏
    打赏
  • 3
    评论
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论 3

打赏作者

最小森林

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值