2013-10-16 5 views
0

그래서 저는 .txt를 사용하는 spell_checker를 완료하고 dictionary.txt와 비교하여 잘못된 단어를 찾습니다. 그 결과는 .txt에서 잘못된 단어를 다시 인쇄해야합니다. 일을하려고 할 때python : TypeError : 'builtin_function_or_method'유형의 인수가 반복 가능하지 않습니다.

는하지만이 오류가 계속 내 루프 :

형식 오류 :

def spell_check(wordlist): 
    opening = open('words.txt').read(). lower(). strip(' ') 
    text = [] 
    conv = set(opening) 
    conv1 = set(wordlist) 
    conv2 = conv1.add 
    return [x for x in conv if x not in conv2] 

편집 : 유형 'builtin_function_or_method'의 인수는 다음

내 코드입니다 반복 가능한 아니다 : conv2가 필요합니다. 왜냐하면 나는 현재의 명령과 동일한 순서로 오류를 유지해야하기 때문입니다. 나는 그것을 세트처럼 주문하기를 원하지 않는다. 누군가가이 문제를 해결하는 방법에 대한 다른 통찰력을 가지고 있다면. 그게 좋을거야.

누구나이 부분에 빛을 비출 수 있다면 그것은 대단히 감사하겠습니다!

+0

나는 ....'conv = set (opening)'... 당신이 기대하는 것을하지 않는다고 생각합니다. 힌트 : 어떤 시점에서 파일에서 읽은 텍스트를 단어로 나눕니 까 ... – kindall

+0

'wordlist'는 사전이고'words.txt '는 맞춤법 검사중인 문서입니까? –

+0

동일한 게시물 정확 : http://stackoverflow.com/questions/19394789/python-how-to-make-a-spell-checker-that-outputs-the-wrong-words –

답변

0
그것은 당신이 방법 add() 동일하게 그것을 설정 한하지만 당신은 어떻게 당신은 당신의 라인에서 일을 ..., 반복 가능으로 conv2에 액세스하려는 모양

:

conv2 = conv1.add 

이를 문제의 라인입니다 ... 저는 .add이 아닌 다른 것을 찾고 있다고 생각합니다. 즉, conv2을 함수와 동일하게 지정하려고합니다 (예 : conv2(2), conv1.add(2)과 같음).

0

add 메서드를 변수 conv2에 바인딩하는 것이 문제입니다. 맞춤법 검사를하고있는 문서 나 전달됩니다 wordlist는, 사전, 그리고 'words.txt'이라고 가정하고

def spell_check(wordlist): 
    # change .strip(' ') to .split(' ') to get a list 
    opening = open('words.txt').read().lower().split(' ') 
    conv = set(opening) 
    conv1 = set(wordlist) 

    # I don't think you need conv2 at all, right? 
    return [x for x in conv if x not in conv1] 

있다 : 나는 무엇을 할 의미가 있습니다 것은이라고 생각합니다.

관련 문제