我会利用Pandas / NumPy索引。由于您的同义词映射是多对一的,因此您可以使用该
Word列重新编制索引。
sd = sd.applymap(str.strip).applymap(str.lower).set_index('Word').Synonymsprint(sd)Worddrove driveoffice downtowneveryday dailyday dailyName: Synonyms, dtype: object
然后,您可以轻松地将标记列表与其各自的同义词对齐。
words = nltk.word_tokenize(u'i drove to office everyday in my car')sentence = sd[words].reset_index()print(sentence) Word Synonyms0 i NaN1 drove drive2 to NaN3 office downtown4 everyday daily5 in NaN6 my NaN7 car NaN
现在,仍然可以使用的令牌
Synonyms,回溯到
Word。这可以通过以下方式实现
sentence = sentence.Synonyms.fillna(sentence.Word)print(sentence.values)[u'i' 'drive' u'to' 'downtown' 'daily' u'in' u'my' u'car']
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)