python中文近义词工具_python根据词条生成同义词库

1.[代码][Python]代码

#!/usr/bin/python

# -*- coding: utf-8 -*-

#from __future__ import unicode_literals

import codecs

import sys

import re

def enmu_all_keys(key):

kl = []

if len(key)==0:

return kl

prefix = ''

for c in key:

prefix = prefix + c

if len(prefix) == 1:

continue

kl.append(prefix)

kl2 = enmu_all_keys(key[1:])

return kl + kl2

def main():

fh = codecs.open('place.txt',"r", "UTF-8")

lines = fh.readlines()

fh.close()

i = 0

ht = {}

for l in lines:

l = l.strip()

ht[l] = 1

for k in ht:

if len(k) == 1:

continue

subk = {}

kl = enmu_all_keys(k)

for sk in kl:

#print sk, sk != k ,ht.has_key(sk)

if sk != k and ht.has_key(sk):

subk[sk] = 1

ht[k] = subk

for k in ht:

if ht[k] != 1 and ht[k] != {}:

s = ''

for sk in ht[k]:

s = s + sk + ',';

print (k+'/'+s.strip(',')).encode('UTF-8')

else :

print (k+'/null').encode("UTF-8")

if __name__ == "__main__":

main()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用WordNet和NLTK来替换语料中的同义词,可以按照以下步骤进行: 1. 安装NLTK和WordNet语料 可以使用pip命令安装NLTK,如下所示: ``` pip install nltk ``` 然后,下载WordNet语料,可以在Python交互式环境中输入以下命令: ``` import nltk nltk.download('wordnet') ``` 2. 导入NLTK和WordNet语料 ``` import nltk from nltk.corpus import wordnet ``` 3. 获取语的同义词 可以使用WordNet中的synsets函数获取语的同义词,如下所示: ``` synonyms = [] for syn in wordnet.synsets(word): for lemma in syn.lemmas(): synonyms.append(lemma.name()) ``` 其中,word是需要替换的语。 4. 进行替换 可以根据获取到的同义词列表,随机选择一个同义词进行替换,如下所示: ``` import random def replace_synonyms(sentence): sentence_list = sentence.split() for i in range(len(sentence_list)): word = sentence_list[i] synonyms = [] for syn in wordnet.synsets(word): for lemma in syn.lemmas(): synonyms.append(lemma.name()) if len(synonyms) > 0: rand_synonym = random.choice(synonyms) sentence_list[i] = rand_synonym return ' '.join(sentence_list) ``` 其中,replace_synonyms函数接收一个句子作为参数,返回替换后的句子。该函数首先将句子分割成单列表,然后对每个单获取同义词列表,如果存在同义词,则随机选择一个同义词进行替换。最后,将替换后的单列表重新组合成句子并返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值