Python은 Sun Monkey가 Tiangong에서 문제를 일으켰을 때 몇 번이나 나타 났는지 분석하는 데 도움이됩니다.

목차

jieba 라이브러리의 공통 기능

정확한 모드

전체 모드

검색 엔진 모드

사용자 지정 단어 분할 추가

중국어 단어 분할 사례


우선, 나는 인터넷의 모든 거물들에게 행복한 휴가를 보내고 영원히 부자가 되기를 바랍니다 !

나는 버그를 작성할 수있는 프로그래머, 작은 회색 원숭이입니다!

ieba 라이브러리는 Python에서 중요한 타사 중국어 단어 분할 라이브러리입니다.

라이브러리는 Python과 함께 제공되는 모듈이 아닌 타사 라이브러리이므로 pip 명령을 통해 설치해야합니다. pip 설치 명령은 다음과 같습니다.

pip install jieba

jieba 라이브러리의 원칙은 중국어 시소러스를 사용하여 분할 할 단어의 내용을 단어 분할 라이브러리와 비교하고 그래프 구조와 동적 프로그래밍을 통해 가장 확률이 높은 구문을 찾는 것입니다. 중국어 시소러스는 고유 할 수 없으므로 jieba 라이브러리에서 개인의 필요에 따라 맞춤 단어를 추가 할 수 있습니다.

jieba 라이브러리에서는 세 가지 단어 분할 모드가 지원됩니다.

정확한 모드

jieba.cut (s)

문장을 가장 정확하고 종종 텍스트 분석에 적합하도록 자릅니다.

전체 모드 :

jieba..cut (s, cut_all = True)

문장에서 단어로 구성 될 수있는 모든 단어를 스캔하는 것은 빠르지 만 모호함을 제거 할 수 없다는 단점이 있습니다.

검색 엔진 모드 :

jieba.cut_for_search (s)

정확한 모델을 기반으로 긴 단어를 다시 분할하여 회상 률을 향상시켜 검색 엔진 단어 분할에 적합합니다.

jieba 라이브러리의 공통 기능

jieba 라이브러리에서 일반적으로 사용되는 함수는 다음과 같습니다.

함수

기술

jieba.cut (s)

정밀 모드, 반복 할 수있는 데이터 유형을 반환합니다.

jieba..cut (s, cut_all = True)

전체 모드, 가능한 모든 단어를 텍스트에 출력

jieba.cut_for_search (s)

검색 엔진 색인화를위한 단어 분할 결과에 적합한 검색 엔진 모드

jieba.lcut (s)

정확한 모드, 목록 유형을 반환합니다. 사용하는 것이 좋습니다.

jieba.lcut (s, cut_all = True)

전체 모드, 목록 유형을 반환합니다. 사용하는 것이 좋습니다.

jieba.lcut_for_search (s)

검색 엔진 모드, 목록 유형을 반환합니다. 사용하는 것이 좋습니다.

jieba.add_word (w)

단어 분할 사전에 새 단어 w 추가

다음으로, 특정 코드로 위에서 일반적으로 사용되는 단어 분할 기술을 분석합니다.

정확한 모드

jieba.lcut () 함수는 정확한 모드를 반환하고 반환 결과는 단어 분할의 형태로 중복되지 않고 완전한 원본 텍스트를 출력합니다.

# 精确模式
import jieba
str1 = "中华人民共和国是一个伟大的国家"
list1 = jieba.lcut(str1)
print(list1)

[ '중화 인민 공화국', 'Yes', 'One', 'Great', 'of', 'Country']

 

전체 모드

jieba.lcut (s, cut_all = True) 함수는 전체 모드로 돌아갑니다. 즉, 가능한 모든 단어 분할이 출력되지만 데이터 중복성이 크다는 단점이 있습니다.

# 全模式
import jieba
str1 = "中华人民共和国是一个伟大的国家"
list2 = jieba.lcut(str1, cut_all=True)
print(list2)

[ '중국', '중국인', '중화 인민 공화국', '중국', '인민', '인민 공화국', '공화국', '공화국', '국가 임', '하나', '위대한' , 's country']

 

검색 엔진 모드

jieba.lcut_for_search (s) 함수는 검색 엔진 모드를 반환하여 정확한 모드를 먼저 실행 한 다음 얻은 단어를 단계별로 분할하여 결과를 얻습니다.
 

# 搜索引擎模式
import jieba
str1 = "中华人民共和国是一个伟大的国家"
list3 = jieba.lcut_for_search(str1)
print(list3)

[ 'China', 'Chinese', 'People', 'Republic', 'Republic', '중화 인민 공화국', 'Yes', 'One', 'Great', 'The', 'Country']

 

사용자 지정 단어 분할 추가

단, 지 에바 라이브러리의 중국어 단어 분할 리소스는 제한되어야하므로 사용자 정의 단어를 만들 때 시스템이 필요에 따라 분할 할 수 없습니다. 이때 add_word () 함수를 사용하여 라이브러리에 단어를 추가합니다. 효과는 다음과 같습니다.

str2 = "灰哥哥正在努力的学习Python"
list4 = jieba.lcut(str2)
print(list4)
jieba.add_word("灰哥哥")
list5 = jieba.lcut(str2)
print(list5)

 

중국어 단어 분할 사례

다음으로 jieba 도서관의 중국어 단어 분할 기술을 사용하여 "Journey to the West"섹션의 등장 인물 수를 세는 관련 예를 보여 드리겠습니다.

import jieba
text = open("dntg.txt").read()    # 读取本章节文本
words = jieba.lcut(text)    

# 将可能出现的任务放入列表
nameWords = ["太白金星", "玉皇大帝", "太上老君", "唐僧", "东海龙王", "孙悟空", "马温", "悟空", "齐天大圣"]
swkWords = ["孙悟空", "马温", "悟空", "齐天大圣"]

counts = {}    # 定义存储数据的字典
for word in words:
    if word not in nameWords:
        continue
    else:
        if word in swkWords:
            word = "孙悟空"
        counts[word] = counts.get(word, 0) + 1  # 将分解后的词数量进行统计
wordLists = list(counts.items())    # 讲字典内容转化为列表形式
wordLists.sort(key=lambda x: x[1], reverse=True)   # 对获取到的词语进行由大到小的排序

for wordList in wordLists:
    word, count = wordList[0], wordList[1]
    print("{}    {}".format(word, count))

단어 분할 결과 :

"천궁 만들기"장의 상위 6 개 캐릭터는 "원숭이 왕", "타오 바이 진싱", "옥황", "당생", "드래곤 킹"이라는 결과를 보면 알 수있다. 동해 "."그중 원숭이 왕이 18 회 가장 많이 등장한다.

글쎄, jieba 도서관의 중국어 단어 분할 기술에 대한 설명이 여기에서 공유됩니다.

그것이 좋다고 생각한다면 그것을 좋아하고 따르십시오 .

큰 나쁜 늑대가 당신과 동행하여 함께 발전합니다!

추천

출처blog.csdn.net/weixin_44985880/article/details/109261272