[python] NLTK를 사용해 문장의 목적어를 추출하는 방법은 무엇인가요?
  1. 필요한 패키지를 가져옵니다.
    import nltk
    from nltk import pos_tag
    from nltk.tokenize import word_tokenize
    
  2. 문장을 토큰화합니다.
    sentence = "나는 사과를 먹었다"
    tokens = word_tokenize(sentence)
    
  3. 토큰에 대해 품사 태깅을 수행합니다.
    tagged_tokens = pos_tag(tokens)
    
  4. 목적어를 추출합니다.
    grammar = "NP: {<DT>?<JJ>*<NN>}"  # 명사구 패턴 정의
    cp = nltk.RegexpParser(grammar)
    result = cp.parse(tagged_tokens)
    
    for subtree in result.subtrees():
        if subtree.label() == "NP":
            print(" ".join([token[0] for token in subtree.leaves()]))
    

위 코드에서, 토큰화를 위해 word_tokenize() 함수를 사용하고, 품사 태깅을 위해 pos_tag() 함수를 사용합니다. 목적어를 추출하기 위해 정규 표현식을 사용한 구문 분석을 수행하고, 결과를 subtrees() 메서드로 반복적으로 확인하여 명사구를 찾습니다.

참고: NLTK는 품사 태깅 결과에 대해 문맥에 따라 정확하지 않을 수 있습니다. 더 정확한 결과를 위해서는 더 정교한 토큰화와 품사 태깅 기법을 사용해야 합니다.