현재 다음과 같은 목록이 포함 된 파일이 있습니다.
example = ['Mary had a little lamb' ,
'Jack went up the hill' ,
'Jill followed suit' ,
'i woke up suddenly' ,
'it was a really bad dream...']
예를 들어 "깨어"라는 단어가 포함 된 문장의 색인을 찾고 싶습니다. 이 예에서 답은 f ( "woke") = 3이어야합니다. F는 함수입니다.
먼저 다음과 같은 단어의 색인을 찾기 위해 각 문장을 토큰 화하려고했습니다.
>>> from nltk.tokenize import word_tokenize
>>> example = ['Mary had a little lamb' ,
... 'Jack went up the hill' ,
... 'Jill followed suit' ,
... 'i woke up suddenly' ,
... 'it was a really bad dream...']
>>> tokenized_sents = [word_tokenize(i) for i in example]
>>> for i in tokenized_sents:
... print i
...
['Mary', 'had', 'a', 'little', 'lamb']
['Jack', 'went', 'up', 'the', 'hill']
['Jill', 'followed', 'suit']
['i', 'woke', 'up', 'suddenly']
['it', 'was', 'a', 'really', 'bad', 'dream', '...']
그러나 나는 마침내 단어의 색인을 얻는 방법과 그것을 문장의 색인에 연결하는 방법을 모릅니다. 누군가 그 방법을 알고 있습니까?
목록의 각 문자열을 반복하고 공백으로 분할 한 다음 검색 단어가 해당 단어 목록에 있는지 확인할 수 있습니다. 목록 내포로이 작업을 수행하면이 요구 사항을 충족하는 문자열에 인덱스 목록을 반환 할 수 있습니다.
def f(l, s):
return [index for index, value in enumerate(l) if s in value.split()]
>>> f(example, 'woke')
[3]
>>> f(example, 'foobar')
[]
>>> f(example, 'a')
[0, 4]
nltk
도서관 이용을 선호하는 경우
def f(l, s):
return [index for index, value in enumerate(l) if s in word_tokenize(value)]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다