텍스트 분석의 일부로 다양한 알고리즘에서 처리하기 위해 단어 수를 세고 가중치를 할당해야 하는 경우가 많습니다. 따라서 이 기사에서는 주어진 문장에서 각 단어의 빈도를 찾는 방법을 살펴보겠습니다. 아래와 같이 3가지 방법으로 할 수 있습니다.
카운터 사용
컬렉션 모듈의 Counter()를 사용하여 단어의 빈도를 얻을 수 있습니다. 여기서 먼저 split()을 적용하여 행에서 단어를 생성한 다음 most_common()을 적용합니다.
예
from collections import Counter line_text = "Learn and practice and learn to practice" freq = Counter(line_text.split()).most_common() print(freq)
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
[('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]
FreqDist() 사용
자연어 도구 키트는 문자열의 단어 수와 고유한 단어 수를 표시하는 FreqDist 기능을 제공합니다. most_common()을 적용하면 각 단어의 빈도를 알 수 있습니다.
예
from nltk import FreqDist text = "Learn and practice and learn to practice" words = text.split() fdist1 = FreqDist(words) print(fdist1) print(fdist1.most_common())
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
<FreqDist with 5 samples and 7 outcomes> [('and', 2), ('practice', 2), ('Learn', 1), ('learn', 1), ('to', 1)]
사전 사용
이 접근 방식에서 우리는 라인의 단어를 사전에 저장합니다. 그런 다음 count()를 적용하여 각 단어의 빈도를 얻습니다. 그런 다음 단어 빈도 값으로 단어를 압축합니다. 최종 결과는 사전으로 표시됩니다.
예
text = "Learn and practice and learn to practice" words = [] words = text.split() wfreq=[words.count(w) for w in words] print(dict(zip(words,wfreq)))
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.
{'Learn': 1, 'and': 2, 'practice': 2, 'learn': 1, 'to': 1}