2017-10-10 49 views
-2

所以我需要在python中編寫一個函數,它將輸入的單詞與文本進行比較,並給出與輸入單詞「最接近」(距離最近)的單詞。我怎樣才能用python編寫一個程序來比較給定的單詞和文本?

距離我的意思是例如單詞'the'和'to'的距離爲2,因爲我需要更改2個字母。

(PS:我剛開始學習的編碼,所以我真的不知道很多關於這一點)

這2碼是什麼我已經和我測試過這些所以它是正確的

這是去的話出來的文字:

def get_words(): 
return re.findall(r'\w+', open('big.txt').read().lower()) 

然後我寫了這把話說在dictonary用的次數出現一句話:

d=dict() 
for token in get_words(): 
    if token in d: 
     d[token]+=1 
    else: 
     d[token]=1 


for key in d: 
    if d[key]>5: 
     print(key,d[key]) 

我的問題,讓字與文本 這比較開始是我:

if distance(word_dict, word) <= 1: 
    word = input('give a word') 
    return (word_dict) 
else: 
    return ('no match') 
+2

你嘗試的東西嗎? https://stackoverflow.com/help/how-to-ask – Dadep

+0

我在嘗試一些東西,但找不到合適的代碼;( – user8741576

+0

您是否在尋找https://en.wikipedia.org/wiki/ Levenshtein_distance? – Kodiologist

回答

0

,你可以這樣做:

>>> w1="the" 
>>> w2="to" 
>>> len([i for i in w1 if i not in w2]) 
2 

比較兩個詞......那麼:

>>> txt1="this is the sentence" 
>>> w1="to" 
>>> txt1.split(" ")[min([len([i for i in w2 if i not in w1]) for w2 in txt1.split(" ")])] 
'the' 

"the"是最接近的詞"to"在文字txt1。這項工作是在你的文本中的每個單詞之間只有一個空格... 所以你應該適應它到你的文本,以獲得文本中的單詞列表,然後將這個列表中的每個元素與你的「輸入單詞」進行比較。

0

,你需要每一個字在你的文本,以便一流你的文本拆分單詞,然後由鄰近評價他們給定的字

現在你需要做的是輸出最好的額定字

你仍然需要弄清楚如果有兩個詞同等級做什麼,但是這是基本的邏輯

好運

相關問題