pynlpl 라이브러리를 사용한 텍스트 통계 분석
소개
텍스트의 통계 분석은 텍스트 사전 프로세싱의 중요한 단계 중 하나입니다. 그것은 우리의 텍스트 데이터를 깊고 수학적으로 이해하는 데 도움이됩니다. 이러한 유형의 분석은 숨겨진 패턴과 문장의 특정 단어의 무게를 이해하는 데 도움이 될 수 있으며 전반적으로 좋은 언어 모델을 구축하는 데 도움이됩니다. Pynlpl 또는 파인애플 라이브러리라고 부르는 것처럼 텍스트 통계 분석을위한 최고의 파이썬 라이브러리 중 하나입니다. 이 라이브러리는 텍스트 청소 및 분석과 같은 다른 작업에도 유용하며 토큰 화제, N- 그램 추출기 등과 같은 텍스트 사전 처리 기능을 제공합니다. 또한 Pynlpl을 사용하여 간단한 언어 모델을 구축 할 수 있습니다.
이 블로그에서는 pynlpl을 사용하여 텍스트 분석을 수행하는 방법을 이해합니다. 우리는 먼저 시스템 에이 라이브러리를 설치하는 모든 방법을 이해할 것입니다. 다음으로, 동시 발생 행렬이라는 용어와 PYNLPL 라이브러리를 사용한 구현을 이해할 것입니다. 그 후, 우리는 가장 반복되는 단어를 식별하기 위해 주파수 목록을 만드는 방법을 배웁니다. 다음으로 텍스트 배포 분석을 수행하여 두 텍스트 문서 나 문자열 사이의 유사성을 측정합니다. 마지막으로, 우리는이 라이브러리를 사용하여 Leveshtein의 거리를 이해하고 계산할 것입니다. 직접 팔로우하고 코딩 할 수 있거나이 링크에서 '복사 및 편집'버튼을 클릭하면 모든 프로그램을 실행할 수 있습니다.
학습 목표
- 사용 가능한 모든 방법을 통해이 라이브러리를 자세히 설치하는 방법을 이해하십시오.
- 단어 관계를 분석하기 위해 용어 동시 발생 매트릭스를 만드는 방법을 배우십시오.
- 주파수 목록을 생성하고 Levenshtein 거리를 계산하는 것과 같은 일반적인 작업을 수행하는 법을 배웁니다.
- 텍스트 배포 분석을 수행하고 문서 유사성을 측정하는 것과 같은 고급 작업을 수행하는 법을 배웁니다.
이 기사는 Data Science Blogathon 의 일부로 출판되었습니다 .
목차
- pynlpl을 설치하는 방법?
- 텍스트 분석에 pynlpl을 사용하는 방법은 무엇입니까?
- 용어 동시 발생 매트릭스
- 주파수 목록
- 텍스트 배포 분석
- Levenshtein 거리
- 문서 유사성 측정
- 자주 묻는 질문
pynlpl을 설치하는 방법?
이 라이브러리는 먼저 PYPI를 사용하고 GitHub를 사용하여 두 가지 방법으로 설치할 수 있습니다.
PYPI를 통해
PYPI를 사용하여 설치하려면 터미널의 아래 명령을 붙여 넣습니다.
PIP 설치 pynlpl
Jupyter Notebook, Kaggle Notebook 또는 Google Colab과 같은 노트북을 사용하는 경우 '!' 위의 명령 전에.
Github를 통해
GitHub을 사용 하여이 라이브러리를 설치하려면 공식 Pynlpl 저장소를 아래 명령을 사용하여 시스템에 복제하십시오.
git 클론 https://github.com/proycon/pynlpl.git
그런 다음 'CD'를 사용하여 터미널 디렉토리를이 폴더로 변경 한 다음 아래 명령을 붙여서 라이브러리를 설치하십시오.
python3 setup.py 설치
텍스트 분석에 pynlpl을 사용하는 방법은 무엇입니까?
이제 텍스트 분석에 pynlpl을 사용하는 방법을 살펴 보겠습니다.
용어 동시 발생 매트릭스
용어 동시 발생 매트릭스 (TCM)는 텍스트에서 단어가 다른 특정 단어와 얼마나 자주 발생하는지 식별하는 통계적 방법입니다. 이 행렬은 단어 간의 관계를 이해하는 데 도움이되고 유용한 숨겨진 패턴을 드러 낼 수 있습니다. 간결한 요약을 생성 할 수있는 단어 간의 관계를 제공하기 때문에 텍스트 요약을 구축하는 데 일반적으로 사용됩니다. 이제 Pynlpl 라이브러리를 사용 하여이 매트릭스를 작성하는 방법을 살펴 보겠습니다.
먼저 pynlpl.statistics에서 주파수리스트 함수를 텍스트에서 몇 번 반복 한 횟수를 계산하는 데 사용됩니다. 우리는 이것을 이후 섹션에서 더 자세히 살펴볼 것입니다. 또한 컬렉션 모듈에서 DefaultDict 메소드를 가져옵니다. 다음으로, 텍스트 입력과 창 크기를 취하고 행렬을 반환하는 create_cooccurrence_matrix라는 함수를 만듭니다. 이 기능에서는 먼저 텍스트를 개별 단어로 나누고 DefaultDict를 사용하여 동시 발생 행렬을 만듭니다. 텍스트의 모든 단어에 대해 지정된 창 크기 내에서 컨텍스트 단어를 식별하고 동시 발생 매트릭스를 업데이트합니다. 마지막으로 행렬을 인쇄하고 각 항의 빈도를 표시합니다.
pynlpl.Statistics 가져 오기 주파수 목록에서 컬렉션에서 가져 오기 DEFAULTDICT def create_cooccurrence_matrix (text, window_size = 2) : Words = text.split () COCUCURENCE_MATRIX = DEFAULTDICT (주파수리스트) I의 경우, 열거 된 (단어)의 단어 : start = max (i -window_size, 0) end = min (i window_size 1, len (단어)) context = 단어 [시작 : i] 단어 [i 1 : end] 컨텍스트의 context_word 용 : COOCOCCURENCE_MATRIX [Word.Lower ()]. count (context_word.lower ()) COOCCURRENCE_MATRIX를 반환합니다 텍스트 = "안녕하세요 이것은 분석입니다. Vidhya는 지금까지 데이터 과학 주제를 탐구하고 있습니다. 분석 Vidhya는 학습 데이터 과학 및 기계 학습을위한 훌륭한 플랫폼입니다." # 용어 동시 발생 매트릭스 작성 COOCOCCURENCE_MATRIX = Create_Cooccurrence_Matrix (텍스트) # 용어 동시 발생 매트릭스 인쇄 print ( "동시 발생 매트릭스 :") 용어의 경우 cococcurrence_matrix.items ()의 context_freq_list : print (f "{term} : {dict (context_freq_list)}")
산출:
주파수 목록
주파수 목록에는 문서 또는 단락에서 특정 단어가 반복 된 횟수가 포함됩니다. 이것은 전체 문서의 주요 주제와 컨텍스트를 이해하는 데 유용한 기능입니다. 우리는 일반적으로 언어학, 정보 검색 및 텍스트 마이닝과 같은 분야에서 주파수 목록을 사용합니다. 예를 들어, 검색 엔진은 주파수 목록을 사용하여 웹 페이지를 순위에 올립니다. 또한 제품 리뷰를 분석하고 제품의 주요 공개 정서를 이해하기위한 마케팅 전략으로 사용할 수 있습니다.
이제 pynlpl 라이브러리를 사용 하여이 주파수 목록을 만드는 방법을 살펴 보겠습니다. 먼저 pynlpl.statistics에서 frequencylist 함수를 가져옵니다. 그런 다음 샘플 텍스트를 변수로 가져 와서 전체 텍스트를 개별 단어로 나눕니다. 그런 다음이 '단어'변수를 주파수 목록 함수로 전달합니다. 마지막으로, 우리는 주파수 목록의 항목을 반복하고 각 단어와 해당 주파수를 인쇄합니다.
pynlpl.Statistics 가져 오기 주파수 목록에서 텍스트 = "안녕하세요 이것은 분석입니다. Vidhya는 지금까지 데이터 과학 주제를 탐구하고 있습니다. 분석 Vidhya는 학습 데이터 과학 및 기계 학습을위한 훌륭한 플랫폼입니다." Words = text.lower (). split () freq_list = 주파수리스트 (단어) Word의 경우 freq_list.items ()의 freq. print (f "{word} : {freq}")
산출:
텍스트 배포 분석
텍스트 분포 분석에서 문장에서 단어의 빈도 및 확률 분포를 계산하여 문장의 문맥을 구성하는 단어를 이해합니다. 이 단어 주파수 분포를 계산함으로써 엔트로피, 당황, 모드 및 최대 엔트로피와 같은 가장 일반적인 단어와 통계적 특성을 식별 할 수 있습니다. 이 속성을 하나씩 이해합시다.
- 엔트로피 : 엔트로피는 분포에서 무작위성의 척도입니다. 텍스트 데이터 측면에서, 엔트로피가 높을수록 텍스트에 광범위한 어휘가 있고 단어가 덜 반복됩니다.
- 당황 : 당황은 언어 모델이 샘플 데이터에 대해 얼마나 잘 예측하는지를 측정하는 것입니다. 당혹감이 낮 으면 텍스트는 예측 가능한 패턴을 따릅니다.
- 모드 : 우리 모두가 어린 시절 부터이 용어를 배웠 듯이, 그것은 우리에게 텍스트에서 가장 반복되는 단어를 알려줍니다.
- 최대 엔트로피 :이 속성은 텍스트가 가질 수있는 최대 엔트로피를 알려줍니다. 즉, 분포의 실제 엔트로피를 비교할 수있는 기준점을 제공합니다.
또한 특정 단어의 정보 내용을 계산할 수 있습니다. 즉, 단어가 제공하는 정보의 양을 계산할 수 있습니다.
pynlpl을 사용하여 구현하십시오
이제 pynlpl을 사용 하여이 모든 것을 구현하는 방법을 살펴 보겠습니다.
pynlpl.statistics 모듈 및 수학 모듈에서 분포 및 주파수리스트 기능을 가져옵니다. 다음으로 샘플 텍스트를 만들고 해당 텍스트 내 각 단어의 빈도를 계산합니다. 이를 위해 위와 같은 단계를 따를 것입니다. 그런 다음 주파수 목록을 전달하여 분배 함수의 객체를 생성합니다. 그런 다음 분포 변수의 항목을 통해 반복하여 각 단어의 분포를 표시합니다. 엔트로피를 계산하려면 분포. entropy () 함수를 호출합니다.
당혹감을 계산하기 위해 분포를 호출합니다. 모드의 경우 분배 .mode ()를 호출합니다. 최대 엔트로피를 계산하려면 분포를 호출합니다 .maxentropy (). 마지막으로, 특정 단어의 정보 내용을 얻으려면 분포 (Word)를 호출합니다. 아래 예에서는이 함수의 모드 단어를 매개 변수로 전달합니다.
수학 수학 pynlpl.Statistics 가져 오기 분포, 주파수 목록에서 텍스트 = "안녕하세요 이것은 분석입니다. Vidhya는 지금까지 데이터 과학 주제를 탐구하고 있습니다. 분석 Vidhya는 학습 데이터 과학 및 기계 학습을위한 훌륭한 플랫폼입니다." # 단어 주파수 계산 Words = text.lower (). split () freq_list = 주파수리스트 (단어) Word_counts = dict (freq_list.items ()) # 단어 주파수에서 분포 객체 생성 배포 = 배포 (Word_counts) # 분포 표시 인쇄 ( "분포 :") Word의 경우 distribution.items ()의 prob. print (f "{word} : {prob : .4f}") # 다양한 통계 print ( "\ nstatistics :") print (f "altropy : {distribution.entropy () :. 4f}") print (f "perplexity : {distribution.perplexity () : 4f}") print (f "mode : {etmerctribution.mode ()}") print (f "max 엔트로피 : {distribution.maxentropy () : 4f}") # '모드'단어의 정보 내용 Word = yourtribution.Mode () information_content = distribution.information (Word) print (f " '{word}'의 정보 내용 : {information_content : .4f}")
산출:
Levenshtein 거리
Levenshtein 거리는 두 단어의 차이의 척도입니다. 두 단어가 동일하게 되려면 얼마나 많은 단일 특성 변경이 필요한지 계산합니다. 그것은 단어에 문자를 삽입, 삭제 또는 대체에 따라 계산합니다. 이 거리 메트릭은 일반적으로 다음 섹션에서 구현할 텍스트 유사성과 같은 철자, DNA 서열 분석 및 자연 언어 처리 작업을 확인하는 데 사용되며 표절 탐지기를 구축하는 데 사용할 수 있습니다. Levenshtein의 거리를 계산함으로써 우리는 두 단어 사이의 관계를 이해할 수 있습니다. 두 단어가 비슷한 지 아닌지 알 수 있습니다. Levenshtein의 거리는 매우 적다면 그 단어가 같은 의미 나 문맥을 가질 수 있으며, 그것이 매우 높으면 완전히 다른 단어임을 의미합니다.
이 거리를 계산하기 위해 먼저 pynlpl.statistics 모듈에서 Levenshtein 함수를 가져옵니다. 그런 다음 '분석'과 '분석'이라는 두 단어를 정의합니다. 다음 으로이 단어를 Levenshtein 함수로 전달하여 거리 값을 반환합니다. 출력에서 볼 수 있듯이,이 두 단어 사이의 Levenshtein 거리는 2입니다. 즉, '분석'을 '분석'으로 변환하는 데 두 개의 단일 문자 편집이 필요합니다. 첫 번째 편집은 문자 ' t '를 '분석'에서 ' s '로 대체하는 것이며, 두 번째 편집은 '분석'의 색인 8에서 ' C '문자를 삭제하는 것입니다.
Pynlpl.Statistics 가져 오기 Levenshtein Word1 = "분석" Word2 = "분석" 거리 = Levenshtein (Word1, Word2) print (f " '{word1}'과 '{word2}'사이의 Levenshtein 거리 : {diste}")
산출:
문서 유사성 측정
많은 응용 프로그램에서 유사한 두 문서 나 문장이 얼마나 유용 할 수 있는지 측정합니다. 그것은 우리가 두 문서와 얼마나 밀접하게 관련되어 있는지 이해할 수있게합니다. 이 기술은 표절 검사기, 코드 차이 검사기 등과 같은 많은 응용 프로그램에서 사용됩니다. 두 문서가 얼마나 유사한 지 분석함으로써 중복 문서를 식별 할 수 있습니다. 이것은 또한 추천 시스템에서 사용할 수 있으며, 여기서 사용자 A에 표시된 검색 결과는 동일한 쿼리를 입력 한 사용자 B에게 표시 될 수 있습니다.
이제이를 구현하기 위해 코사인 유사성 메트릭을 사용합니다. 먼저, Pynlpl 라이브러리의 주파수 목록과 수학 모듈에서 SQRT라는 두 가지 함수를 가져옵니다. 이제 우리는 두 가지 변수에 두 줄을 추가 할 것입니다. 단지 문자열 대신 두 개의 텍스트 문서를 열 수 있습니다. 다음으로, 우리는 이전에 가져온 주파수 목록 함수로 전달하여 이러한 문자열의 주파수 목록을 작성합니다. 그런 다음 cosine_similarity라는 함수를 작성 하여이 두 주파수 목록을 입력으로 전달합니다. 이 기능에서는 먼저 주파수 목록에서 벡터를 생성 한 다음이 벡터 사이의 각도 코사인을 계산하여 유사성을 측정합니다. 마지막으로 기능을 호출하고 결과를 인쇄합니다.
pynlpl.Statistics 가져 오기 주파수 목록에서 수학 수입 SQRT에서 DOC1 = "Analytics Vidhya는 데이터 과학 및 기계 학습에 대한 귀중한 통찰력과 자습서를 제공합니다." DOC2 = "데이터 과학 및 기계 학습에 대한 자습서를 원한다면 분석 Vidhya를 확인하십시오." # 두 문서의 주파수 목록 개체 작성 freq_list1 = frequencyList (doc1.lower (). split ()) freq_list2 = frequencyList (doc2.Lower (). split ()) def cosine_similarity (freq_list1, freq_list2) : vec1 = {Word : freq_list1 [Word] for Word, _ in freq_list1} vec2 = {Word : freq_list2 [Word] for Word, _ in freq_list2} 교차로 = set (vec1.keys ()) & set (vec2.keys ()) numerator = sum (vec1 [Word] * vec2 [Word] 교차로 단어)) sum1 = sum (vec1.keys ()의 Word의 경우 2의 sum1 = sum (vec1 [Word] ** 2 sum2 = sum (vec2 [word] ** 2 vec2.keys ()의 Word의 경우 2 분모 = sqrt (sum1) * sqrt (sum2) 분모가 아닌 경우 : 0.0을 반환합니다 플로트 (숫자) / 분모를 반환합니다 # compulatinng cosine 유사성 유사성 = cosine_similarity (freq_list1, freq_list2) print (f "코사인 유사성 : {유사성 : .4f}")
산출:
결론
Pynlpl은 텍스트 통계 분석을 수행 할 수있는 강력한 라이브러리입니다. 텍스트 분석뿐만 아니라 토큰 화, 스템 밍, N- 그램 추출 및 간단한 언어 모델 구축과 같은 일부 텍스트 사전 처리 기술 에이 라이브러리를 사용할 수도 있습니다. 이 블로그에서 우리는 먼저이 라이브러리를 설치하는 모든 방법을 이해 한 다음이 라이브러리를 사용하여 공통 단어를 식별하기 위해 주파수 목록을 만들고 텍스트 배포 분석을 수행하며 Levenshtein 거리를 계산하는 방법을 이해하고 문서 유사성을 계산하는 방법을 이해하는 등의 주파수 목록을 구현하는 등 다양한 작업을 수행했습니다. 이러한 각 기술을 사용하여 텍스트 데이터에서 귀중한 통찰력을 추출하여 귀중한 라이브러리가 될 수 있습니다. 다음에 텍스트 분석을 수행 할 때는 Pynlpl (파인애플) 라이브러리를 사용해보십시오.
주요 테이크 아웃
- Pynlpl (파인애플) 라이브러리는 텍스트 통계 분석을위한 최고의 라이브러리 중 하나입니다.
- 동시 발생 행렬이라는 용어는 단어 간의 관계를 이해하는 데 도움이되며 요약을 구축하는 데 유용 할 수 있습니다.
- 주파수 목록은 텍스트 또는 문서의 주요 주제를 이해하는 데 유용합니다.
- 텍스트 분포 분석 및 Levenshtein 거리는 텍스트 유사성을 이해하는 데 도움이 될 수 있습니다.
- 또한 텍스트 통계 분석뿐만 아니라 텍스트 전처리에 Pynlpl 라이브러리를 사용할 수 있습니다.
자주 묻는 질문
Q1. pynlpl은 무엇입니까?A. Pynlpl은 파인애플이라고도합니다. 텍스트 통계 분석 및 텍스트 사전 프로세싱에 사용되는 Python 라이브러리입니다.
Q2. 문서 유사성을 측정하면 어떤 이점이 있습니까?A.이 기술을 사용하면 표절 검사기, 코드 차이 검사기 등에 비슷한 두 문서 나 텍스트가 얼마나 유사한지를 측정 할 수 있습니다.
Q3. 동시 발생 매트릭스라는 용어는 무엇입니까?A. 동시 발생 행렬이라는 용어는 문서에서 두 단어가 얼마나 자주 발생하는지 식별하는 데 사용될 수 있습니다.
Q4. Levenshtein 거리는 어떻게 유용합니까?A. Levenshtein 거리를 사용하여 두 단어의 차이를 찾을 수 있으며, 이는 맞춤법 검사기를 구축하는 데 유용 할 수 있습니다.
이 기사에 표시된 미디어는 분석 Vidhya가 소유하지 않으며 저자의 재량에 따라 사용됩니다.
위 내용은 pynlpl 라이브러리를 사용한 텍스트 통계 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사는 최고의 AI 아트 생성기를 검토하여 자신의 기능, 창의적인 프로젝트에 대한 적합성 및 가치에 대해 논의합니다. Midjourney를 전문가에게 최고의 가치로 강조하고 고품질의 사용자 정의 가능한 예술에 Dall-E 2를 추천합니다.

메타의 라마 3.2 : 멀티 모달 및 모바일 AI의 도약 Meta는 최근 AI에서 강력한 비전 기능과 모바일 장치에 최적화 된 가벼운 텍스트 모델을 특징으로하는 AI의 상당한 발전 인 Llama 3.2를 공개했습니다. 성공을 바탕으로 o

이 기사는 Chatgpt, Gemini 및 Claude와 같은 최고의 AI 챗봇을 비교하여 고유 한 기능, 사용자 정의 옵션 및 자연어 처리 및 신뢰성의 성능에 중점을 둡니다.

ChatGpt 4는 현재 이용 가능하고 널리 사용되며 ChatGpt 3.5와 같은 전임자와 비교하여 상황을 이해하고 일관된 응답을 생성하는 데 상당한 개선을 보여줍니다. 향후 개발에는보다 개인화 된 인터가 포함될 수 있습니다

이 기사는 Grammarly, Jasper, Copy.ai, Writesonic 및 Rytr와 같은 최고의 AI 작문 조수에 대해 논의하여 콘텐츠 제작을위한 독특한 기능에 중점을 둡니다. Jasper는 SEO 최적화가 뛰어나고 AI 도구는 톤 구성을 유지하는 데 도움이된다고 주장합니다.

2024는 콘텐츠 생성에 LLM을 사용하는 것에서 내부 작업을 이해하는 것으로 바뀌는 것을 목격했습니다. 이 탐사는 AI 요원의 발견으로 이어졌다 - 자율 시스템을 처리하는 과제와 최소한의 인간 개입으로 결정을 내렸다. buildin

이 기사는 Google Cloud, Amazon Polly, Microsoft Azure, IBM Watson 및 Destript와 같은 최고의 AI 음성 생성기를 검토하여 기능, 음성 품질 및 다양한 요구에 대한 적합성에 중점을 둡니다.

Shopify CEO Tobi Lütke의 최근 메모는 AI 숙련도가 모든 직원에 대한 근본적인 기대를 대담하게 선언하여 회사 내에서 중요한 문화적 변화를 표시합니다. 이것은 도망가는 트렌드가 아닙니다. 그것은 p에 통합 된 새로운 운영 패러다임입니다
