2014-12-01 3 views
3

그래서 우리는 파이썬으로 다른 언어를 탐지하는 언어 감지 프로그램을 만들었습니다. 우리 코드는 괜찮아 보인다. 오류는 없지만 원하는 결과를 얻지는 못합니다. Eclipse에서 실행할 때마다 실행되고 종료되어 실행 시간과 "OK"를줍니다. 그것은 쓰여진 텍스트의 언어를 인쇄하기로되어 있습니다.파이썬의 언어 감지 코드

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

+1

실제로'main'을 호출합니까? – jonrsharpe

+1

일반적인 문제 해결 아이디어는 main의 시작 부분에'import pdb; pdb.set_trace()'를 넣는 것입니다. 관심있는 것이 있는지 확인하려면 코드를 단계별로 실행하십시오. pdb를 사용하는 동안'next'와 한줄의 함수를 사용하여 전달되는 변수가 무엇인지 검사 할 수 있습니다. 다른 명령을보기 위해 pdb에서 'help'를 누르십시오. – jmunsch

답변

3

다른 언어와 달리 main()은 Python의 다른 모든 기능과 같습니다. 실행하려면 명시 적으로 호출해야합니다.

def main(): 
    ... 

main() 
+0

감사합니다. 나는 main을 명시 적으로 호출하지 않았다. –