改变保持其含义完整的词语

时间:2010-08-28 16:19:41

标签: python .net nlp

我们需要更改句子中的单词或短语,同时保持其含义不变。该应用程序将为参与复制写作的用户提供建议。

我不知道我应该从哪里开始...我们尚未最终确定该技术,但希望在Python或.Net中进行。

4 个答案:

答案 0 :(得分:14)

只是为了笑:

import urllib2
import urllib
import sys
import json

def translate(text,lang1,lang2):
    base_url='http://ajax.googleapis.com/ajax/services/language/translate?'    
    langpair='%s|%s'%(lang1,lang2)
    params=urllib.urlencode( (('v',1.0),
                       ('q',text.encode('utf-8')),
                       ('langpair',langpair),) )
    url=base_url+params
    content=urllib2.urlopen(url).read()
    try:
        trans_dict=json.loads(content)
    except AttributeError:
        try:
            trans_dict=json.load(content)    
        except AttributeError:
            trans_dict=json.read(content)
    return trans_dict['responseData']['translatedText']

languages='de da nl zh-tw ko es pt el'.split()
text=(' '.join(sys.argv[1:])).decode('utf-8')

for lang in languages:
    result=translate(text,'en',lang)
    result=translate(result,lang,'en')
    print(result)
    print

正在运行

test.py "Hi, We have a requirement in which we need to change the words or phrases in the sentence while keeping its meaning intact."

产量

  

嗨,我们有一个承诺,我们   必须改变中的单词或短语   一句话,同时保留它   含义。

     

你好,我们有一个要求   需要改变单词或短语   句子同时保持其含义   完好。

     

嗨,我们有一个要求我们需要的   意义内的单词或短语   同时改变其含义。

     嘿,我们有一个要求,我们需要   改变中的单词或短语   句子意思,同时保持   它的完整性。

     

嗨,我们认为我们需要改变   句子中的单词或短语   要求意味着   字面上。

     

你好,我们要求我们   必须改变中的单词或短语   这句话,保持完整   含义。

     

嗨,我们有义务我们需要   更改单词或短语   句子,保持其完整意义。

     

你好,我们有一个要求   需要改变中的单词或短语   这句话,同时保持完整   概念

答案 1 :(得分:1)

在python中使用nltk。访问词性标注和wordnet,这两者都是进行合理替换所必需的。

http://www.nltk.org/

答案 2 :(得分:0)

同义词和马尔可夫链的某些组合可能有用,但你总会得到奇怪的结果。不要指望一个程序比人类做出更好的短语。

答案 3 :(得分:0)

如果您正在寻找计算机辅助,其中软件提供解决方案或部分解决方案的建议,我认为为每个句子中的内容词提供自动同义词库查找将是一个良好的开端。只需使用停用词列表来过滤掉无趣的单词。 Translation Memory是一个相关的概念,其中NLP用于帮助翻译,我相信你可以从中获得用户界面等的想法。有几种开源解决方案可供使用。

如果你想要一个完全无监督的过程,我认为解析为一些语义表示并改变一些基于WordNet的内容词,然后从中生成可能是理论上最干净的方法。如果只有语法重组是可以的,那么放弃改变。然而,质量很可能很低。如果你只需要一个狭窄的领域,就可以进行大量的剪裁,并且可以取得很好的效果。