2014-12-01 166 views
3

因此,我們在python中構建了一個檢測不同語言的語言檢測程序。我們的代碼似乎很好,沒有錯誤,但我沒有得到理想的結果。每當我在Eclipse上運行它時,它會運行並終止給我們的運行時間和「確定」。它應該打印所寫文本的語言。python中的語言檢測代碼

def compute_ratios(text): 

    tokens = wordpunct_tokenize(text) 
    words = [word.lower() for word in tokens] 

    langratios = {} 

    for language in stopwords.fileids(): 
     stopwords_set = set(stopwords.words(language)) 
     words_set = set (words) 
     common_elements = words_set.intersection(stopwords_set) 

    langratios[language] = len(common_elements) 

    return langratios 

def max_ratio(text): 

    ratios = compute_ratios(text) 

    mostLang = max(ratios , key=ratios.get) 
    return mostLang 

def main(): 

    text = "This is cool" 
    x = max_ratio(text) 
    print(x) 
+0

我們可能需要查看其餘代碼來確定問題。 – rlms 2014-12-01 20:48:51

+1

你真的*調用*'main'嗎? – jonrsharpe 2014-12-01 20:49:12

+1

只是一個常見的故障排除的想法嘗試在主開始處放入:'import pdb; pdb.set_trace()'。通過代碼來查看是否有興趣的東西出現。您可以在使用pdb檢查正在傳遞的變量時發生的情況時使用'next'和一行函數。 'help',而在pdb中查看其他命令。 – jmunsch 2014-12-01 20:49:51

回答

3

與其他一些語言不同,main()就像Python中的其他函數一樣。如果你想要它運行,你必須明確地稱它:

def main(): 
    ... 

main() 
+0

謝謝。我沒有明確地調用main – 2014-12-02 14:23:29