2017-02-27 42 views
-1

假設我們有一個單詞列表 L1 = {good,awesome,bad,super,toy,hill}和一個 字符串S =「這是一個由好人寫的令人敬畏的線條。 當我們映射這兩個我們需要找到的相似詞的數量。 在這種情況下,其2(好,真棒) 請幫助我如何解決這個在Python中。 PS:我想創建一個基於列表和字符串之間的詞相似性的機器學習子任務的二進制響應變量, 我是新來的自然語言處理,是否有任何功能可以輕鬆地做到這一點?如何計算與單詞列表進行比較時字符串中存在的類似單詞的數量?

PS: 我試過的方法是首先分割字符串並將單個單詞存儲在列表中,然後迭代它並與原始單詞列表進行比較,並在找到匹配時增加計數器。

在NLP中有這樣做的直接功能嗎?

+0

你試過做什麼? – depperm

+0

在我的項目? @depperm –

+1

@AmireddyTharunreddy對於這個特定的任務。你做過任何研究嗎?你有沒有嘗試過自己? – miradulo

回答

1
for x in L1: 
    if x in S: 
     print(x) 
     counter += 1 

首先我們通過每一個在L1的話迭代,然後我們使用in操作,以檢查是否這些詞在S.發現如果是,我們打印的字,並通過計數器增加一。

注意:這隻會檢查它是否在S中,而不管有多少個實例。

+0

這將有助於OP,如果你能給出一行解釋你在做什麼,爲什麼你在做什麼。 –

0

嘗試以下操作:

from collections import Counter 

words = set(['good', 'awesome', 'bad', 'super', 'toy', 'hill']) 
latest = "this is an awesome line written by a good guy." 
latest_counted = Counter(latest.strip().split()) 
common_words = words.intersection(latest_counted) 
count_common = sum(latest_counted[wrd] for wrd in common_words) 
print('There are %i words common (including duplicates).' % count_common) 

相同的單詞會增加計數的多場比賽。

相關問題