在Python中使用ngram,我的目标是从输入的文本中找出动词及其相应的副词。 我所做的:
输入文本:“他说话很奇怪。马跑得快。那里有一棵大树。太阳很美。这地方很好装饰。他们说话很奇怪。她跑得很快。她在说话很好,杰克运行缓慢。“” 代码:-在
`finder2 = BigramCollocationFinder.from_words(wrd for (wrd,tags) in posTagged if tags in('VBG','RB','VBN',))
scored = finder2.score_ngrams(bigram_measures.raw_freq)
print sorted(finder2.nbest(bigram_measures.raw_freq, 5))`
从代码中,我得到了输出:
[('talking', 'greatly'), ('talking', 'weirdly'), ('weirdly', 'talking'),('runs','fast'),('runs','slow')]
这是动词及其相应副词的列表。在
我要找的是:
我想从中找出动词和所有相应的副词。例如('talking'- 'greatly','weirdly),('runs'-'fast','slow')etc.
我想你正在丢失你需要的信息。您需要以某种方式保留词性数据,以便能够以正确的方式处理
('weirdly', 'talking')
之类的双元组。在可能是bigram finder可以接受带标记的单词元组(我不熟悉nltk)。或者,您可能不得不求助于创建外部索引。如果是这样的话,这样的方法可能会奏效:
然后,用前面的动词,你可以把它转换成字典或列表或其他任何东西:
^{2}$你已经有了一个所有动词副词双元组的列表,所以你只是在问如何将它们合并到一个字典中,为每个动词提供所有副词。但首先,让我们以更直接的方式重新创建您的bigrams:
现在来回答你的问题:我们将用每个动词后面的副词建立一个词典。为了避免重复,我将把副词存储在一个集合中,而不是列表中。在
^{2}$defaultdict
为以前从未见过的动词提供了一个空集,因此我们不需要手动检查。在根据作业的具体情况,你可能还需要将动词进行格叠和词法化,以便将“鲁莽驾驶”和“我小心驾驶”中的副词记录在一起:
相关问题 更多 >
编程相关推荐