สารบัญ
รหัส Python บริสุทธิ์สำหรับการวิเคราะห์เกาหลี มันมีจุดมุ่งหมายที่จะเป็นวิธีการเรียนรู้ที่ไม่ใช่แผนที่ที่สามารถค้นหาคำในข้อมูลโดยไม่ต้องใช้ข้อมูลการเรียนรู้การถอดประโยคด้วยคำหรือแยกแยะส่วนต่าง ๆ ของการพูด
WordExtractor หรือ Nounextractor ที่จัดทำโดย SoynLP ทำงานโดยใช้ข้อมูลทางสถิติที่เรียนรู้จากเอกสารหลายฉบับ วิธีการเรียนรู้แบบไม่ได้ใช้การเรียนรู้แบบไม่ใช้คำโดยใช้รูปแบบทางสถิติดังนั้นพวกเขาจึงทำงานได้ดีในกลุ่มเอกสารเดียวกัน (เอกสารที่เป็นเนื้อเดียวกัน) ที่ค่อนข้างใหญ่กว่าในประโยคเดียวหรือเอกสาร เป็นการดีที่จะเรียนรู้สารสกัดโดยการรวบรวมเฉพาะเอกสารที่ใช้คำเดียวกันเช่นความคิดเห็นภาพยนตร์หรือบทความข่าวประจำวัน เอกสารของกลุ่มที่แตกต่างกันจะไม่ได้รับการสกัดอย่างดีเมื่อพวกเขารวบรวมเข้าด้วยกัน
จนกระทั่ง synlp = 0.0.46 ไม่มีกฎในชื่อของพารามิเตอร์ซึ่งต้องใช้ค่าต่ำสุดหรือสูงสุดเช่น min_score, minimum_score, l_len_min ในบรรดารหัสที่คุณได้ทำงานมาจนถึงตอนนี้คุณสามารถสร้างความสับสนให้กับผู้ที่ตั้งค่าพารามิเตอร์โดยตรง แต่เราได้แก้ไขชื่อของตัวแปร เพื่อลดความไม่สะดวกที่จะเกิดขึ้นในภายหลังก่อนที่จะเกิดขึ้นในภายหลัง
หลังจาก 0.0.47 ชื่อตัวแปรที่มีความหมายของขั้นต่ำและสูงสุดจะลดลงเป็นต่ำสุดและสูงสุด หลังจากนั้นเขียนชื่อสำหรับพารามิเตอร์ที่เป็นเกณฑ์ รวมชื่อพารามิเตอร์ด้วยรูปแบบต่อไปนี้: รวมชื่อด้วย {min, max} _ {คำนาม, Word} _ {คะแนน, Threshold} หากรายการนั้นชัดเจนคุณสามารถละเว้นได้
การนับสตริงย่อยมักจะทำใน Synlp พารามิเตอร์ที่เกี่ยวข้องกับความถี่จะรวมอยู่ด้วยความผิดพลาดไม่นับ
ดัชนีและ idx เป็น unified ด้วย idx
NUM และ N ซึ่งหมายถึงตัวเลขจะรวมเป็นหนึ่งเดียวกับ NUM
$ pip install soynlpอันเป็นผลมาจากความพยายามต่าง ๆ ในการสกัดคำนาม V1, News และ V2 สามเวอร์ชันถูกสร้างขึ้น ประสิทธิภาพที่ดีที่สุดคือ V2
WordExtractor คือการเรียนรู้คะแนนขอบเขตของคำโดยใช้สถิติและไม่ตัดสินส่วนต่าง ๆ ของแต่ละคำ บางครั้งคุณจำเป็นต้องรู้ฝ่ายของแต่ละคำ นอกจากนี้คำใหม่นั้นพบได้บ่อยที่สุดในคำนามมากกว่าส่วนอื่น ๆ ของการพูด ทางด้านขวาของคำนามตัวอักษรบางตัวมักจะปรากฏขึ้นเช่น -silver, -e และ - หากคุณดูการกระจายตัวอักษรที่ปรากฏทางด้านขวาของพื้นผิวด้านซ้ายของคำ (หน่วยมาตรฐานที่ใช้พื้นที่) คุณสามารถกำหนดได้ว่าเป็นคำนามหรือไม่ Synlp เสนอคำนามคำนามสองประเภท เป็นการยากที่จะบอกว่ามีบางอย่างที่ดีกว่าเพราะทั้งคู่อยู่ในขั้นตอนการพัฒนา ในอนาคตตัวแยกคำนามจะถูกสรุปเป็นคลาสเดียว
from soynlp . noun import LRNounExtractor
noun_extractor = LRNounExtractor ()
nouns = noun_extractor . train_extract ( sentences ) # list of str like
from soynlp . noun import NewsNounExtractor
noun_extractor = NewsNounExtractor ()
nouns = noun_extractor . train_extract ( sentences ) # list of str likeนี่เป็นตัวอย่างของคำนามที่เรียนรู้จากข่าวของ 2016-10-20
덴마크 웃돈 너무너무너무 가락동 매뉴얼 지도교수
전망치 강구 언니들 신산업 기뢰전 노스
할리우드 플라자 불법조업 월스트리트저널 2022년 불허
고씨 어플 1987년 불씨 적기 레스
스퀘어 충당금 건축물 뉴질랜드 사각 하나씩
근대 투자주체별 4위 태권 네트웍스 모바일게임
연동 런칭 만성 손질 제작법 현실화
오해영 심사위원들 단점 부장조리 차관급 게시물
인터폰 원화 단기간 편곡 무산 외국인들
세무조사 석유화학 워킹 원피스 서장 공범
คำอธิบายโดยละเอียดเพิ่มเติมอยู่ในบทช่วยสอน
SOYNLP = 0.0.46+ เสนอคำนาม Extractor เวอร์ชัน 2 นี่คือเวอร์ชันที่แก้ไขความถูกต้องของคำนามเวอร์ชันก่อนหน้าความสามารถในการจดจำคำนามสังเคราะห์และข้อผิดพลาดของข้อมูลเอาต์พุต การใช้งานคล้ายกับเวอร์ชัน 1
from soynlp . utils import DoublespaceLineCorpus
from soynlp . noun import LRNounExtractor_v2
corpus_path = '2016-10-20-news'
sents = DoublespaceLineCorpus ( corpus_path , iter_sent = True )
noun_extractor = LRNounExtractor_v2 ( verbose = True )
nouns = noun_extractor . train_extract ( sents )คำนามที่แยกออกมาคือรูปแบบ {str: namedtuple}
print ( nouns [ '뉴스' ]) # NounScore(frequency=4319, score=1.0)_compounds_components เก็บข้อมูลจากคำนามเดียวที่ประกอบเป็นคำนามที่ซับซ้อน จริงๆแล้วมันเป็นรูปแบบที่ซับซ้อนเช่น 'เกาหลี' และ 'การเติบโตสีเขียว' แต่ถ้าใช้เป็นคำนามเดียวมันจะได้รับการยอมรับว่าเป็นคำนามเดียว
list ( noun_extractor . _compounds_components . items ())[: 5 ]
# [('잠수함발사탄도미사일', ('잠수함', '발사', '탄도미사일')),
# ('미사일대응능력위원회', ('미사일', '대응', '능력', '위원회')),
# ('글로벌녹색성장연구소', ('글로벌', '녹색성장', '연구소')),
# ('시카고옵션거래소', ('시카고', '옵션', '거래소')),
# ('대한민국특수임무유공', ('대한민국', '특수', '임무', '유공')),LRGRAPH จัดเก็บโครงสร้าง LR ของการลบในคลังข้อมูลที่เรียนรู้ คุณสามารถตรวจสอบสิ่งนี้โดยใช้ get_r และ get_l
noun_extractor . lrgraph . get_r ( '아이오아이' )
# [('', 123),
# ('의', 47),
# ('는', 40),
# ('와', 18),
# ('가', 18),
# ('에', 7),
# ('에게', 6),
# ('까지', 2),
# ('랑', 2),
# ('부터', 1)]รายละเอียดเพิ่มเติมอยู่ในบทช่วยสอน 2.
ในเดือนตุลาคม 2559 มีคำเช่น 'สองครั้ง' และ 'ไอโอวา' อย่างไรก็ตามฉันไม่เคยเห็นคำเหล่านี้คำนี้ เนื่องจากมีการสร้างคำใหม่เสมอจึงมีปัญหาคำที่ไม่ได้ลงทะเบียน (OOV) ที่ไม่รู้จักคำที่คุณไม่ได้เรียนรู้ อย่างไรก็ตามหากคุณอ่านบทความข่าวความบันเทิงหลายฉบับที่เขียนในเวลานี้คุณจะเห็นคำพูดเช่น 'สองครั้ง' และ 'ioi' ปรากฏขึ้นและผู้คนสามารถเรียนรู้ได้ หากเรากำหนดความร้อนคำต่อเนื่องที่มักจะปรากฏในชุดเอกสารเราสามารถแยกมันโดยใช้สถิติ มีหลายวิธีในการเรียนรู้คำ (ขอบเขต) ตามสถิติ Synlp ให้คะแนนการทำงานร่วมกัน, การแตกแขนงเอนโทรปีและความหลากหลายของอุปกรณ์เสริม
from soynlp . word import WordExtractor
word_extractor = WordExtractor ( min_frequency = 100 ,
min_cohesion_forward = 0.05 ,
min_right_branching_entropy = 0.0
)
word_extractor . train ( sentences ) # list of str or like
words = word_extractor . extract ()คำพูดเป็นคำสั่งที่ถือชื่อที่เรียกว่าคะแนน
words [ '아이오아이' ]
Scores ( cohesion_forward = 0.30063636035733476 ,
cohesion_backward = 0 ,
left_branching_entropy = 0 ,
right_branching_entropy = 0 ,
left_accessor_variety = 0 ,
right_accessor_variety = 0 ,
leftside_frequency = 270 ,
rightside_frequency = 0
)นี่เป็นตัวอย่างที่จัดเรียงโดยคะแนนคำ (การทำงานร่วมกัน * เอนโทรปี Branking) เรียนรู้จากบทความข่าวของ 2016-10-26
단어 (빈도수, cohesion, branching entropy)
촬영 (2222, 1.000, 1.823)
서울 (25507, 0.657, 2.241)
들어 (3906, 0.534, 2.262)
롯데 (1973, 0.999, 1.542)
한국 (9904, 0.286, 2.729)
북한 (4954, 0.766, 1.729)
투자 (4549, 0.630, 1.889)
떨어 (1453, 0.817, 1.515)
진행 (8123, 0.516, 1.970)
얘기 (1157, 0.970, 1.328)
운영 (4537, 0.592, 1.768)
프로그램 (2738, 0.719, 1.527)
클린턴 (2361, 0.751, 1.420)
뛰어 (927, 0.831, 1.298)
드라마 (2375, 0.609, 1.606)
우리 (7458, 0.470, 1.827)
준비 (1736, 0.639, 1.513)
루이 (1284, 0.743, 1.354)
트럼프 (3565, 0.712, 1.355)
생각 (3963, 0.335, 2.024)
팬들 (999, 0.626, 1.341)
산업 (2203, 0.403, 1.769)
10 (18164, 0.256, 2.210)
확인 (3575, 0.306, 2.016)
필요 (3428, 0.635, 1.279)
문제 (4737, 0.364, 1.808)
혐의 (2357, 0.962, 0.830)
평가 (2749, 0.362, 1.787)
20 (59317, 0.667, 1.171)
스포츠 (3422, 0.428, 1.604)
รายละเอียดเพิ่มเติมอยู่ในการสอนการสกัดคำ ฟังก์ชั่นที่ให้ไว้ในเวอร์ชันปัจจุบันมีดังนี้:
หากคุณได้เรียนรู้คะแนนคำจาก Wordxtractor คุณสามารถใช้มันเพื่อทำลายประโยคให้เป็นคำร้อนตามขอบเขตของคำ Synlp เสนออัศวินแรงบิดสามตัว หากคุณเก่งในการเว้นระยะคุณสามารถใช้ ltokenizer ได้ ฉันคิดว่าโครงสร้างของภาษาเกาหลีคือ "l + [r]" เช่น "คำนาม + สำรวจ"
l ชิ้นส่วนอาจเป็นคำนาม/คำกริยา/คำคุณศัพท์/คำวิเศษณ์ หากเพียง L รับรู้เพียง L ในคำเท่านั้นส่วนที่เหลือคือส่วน R ltokenizer เข้าสู่คะแนนคำของชิ้นส่วน l
from soynlp . tokenizer import LTokenizer
scores = { '데이' : 0.5 , '데이터' : 0.5 , '데이터마이닝' : 0.5 , '공부' : 0.5 , '공부중' : 0.45 }
tokenizer = LTokenizer ( scores = scores )
sent = '데이터마이닝을 공부한다'
print ( tokenizer . tokenize ( sent , flatten = False ))
#[['데이터마이닝', '을'], ['공부', '중이다']]
print ( tokenizer . tokenize ( sent ))
# ['데이터마이닝', '을', '공부', '중이다']หากคุณคำนวณคะแนนคำโดยใช้ WordExtractor คุณสามารถสร้างคะแนนได้โดยเลือกคะแนนหนึ่งคำ ด้านล่างเป็นเพียงคะแนนของการทำงานร่วมกันไปข้างหน้า นอกจากนี้คะแนนคำต่าง ๆ สามารถกำหนดและใช้งานได้
from soynlp . word import WordExtractor
from soynlp . utils import DoublespaceLineCorpus
file_path = 'your file path'
corpus = DoublespaceLineCorpus ( file_path , iter_sent = True )
word_extractor = WordExtractor (
min_frequency = 100 , # example
min_cohesion_forward = 0.05 ,
min_right_branching_entropy = 0.0
)
word_extractor . train ( sentences )
words = word_extractor . extract ()
cohesion_score = { word : score . cohesion_forward for word , score in words . items ()}
tokenizer = LTokenizer ( scores = cohesion_score )นอกจากนี้คุณยังสามารถใช้คะแนนคำนามและการทำงานร่วมกันของตัวสกัดคำนาม ตัวอย่างเช่นหากคุณต้องการใช้ "คะแนนการทำงานร่วมกัน + คะแนนคำนาม" เป็นคะแนนคำคุณสามารถทำงานได้ดังนี้
from soynlp . noun import LRNounExtractor_2
noun_extractor = LRNounExtractor_v2 ()
nouns = noun_extractor . train_extract ( corpus ) # list of str like
noun_scores = { noun : score . score for noun , score in nouns . items ()}
combined_scores = { noun : score + cohesion_score . get ( noun , 0 )
for noun , score in noun_scores . items ()}
combined_scores . update (
{ subword : cohesion for subword , cohesion in cohesion_score . items ()
if not ( subword in combined_scores )}
)
tokenizer = LTokenizer ( scores = combined_scores )หากระยะห่างไม่ได้สังเกตอย่างถูกต้องหน่วยหารด้วยระยะห่างของประโยคคือโครงสร้าง L + [R] อย่างไรก็ตามผู้คนจะสังเกตเห็นจากคำพูดที่คุ้นเคยในประโยคที่ไม่ได้อยู่ในช่องว่าง MaxScoretokeenizer ซึ่งย้ายกระบวนการนี้ไปยังโมเดลก็ใช้คะแนนคำด้วย
from soynlp . tokenizer import MaxScoreTokenizer
scores = { '파스' : 0.3 , '파스타' : 0.7 , '좋아요' : 0.2 , '좋아' : 0.5 }
tokenizer = MaxScoreTokenizer ( scores = scores )
print ( tokenizer . tokenize ( '난파스타가좋아요' ))
# ['난', '파스타', '가', '좋아', '요']
print ( tokenizer . tokenize ( '난파스타가 좋아요' , flatten = False ))
# [[('난', 0, 1, 0.0, 1), ('파스타', 1, 4, 0.7, 3), ('가', 4, 5, 0.0, 1)],
# [('좋아', 0, 2, 0.5, 2), ('요', 2, 3, 0.0, 1)]]MaxScoretokenizer ยังใช้ผลลัพธ์ของ WordXtractor และใช้คะแนนอย่างเหมาะสมเช่นตัวอย่างข้างต้น หากมีพจนานุกรมคำที่รู้จักกันแล้วคำเหล่านี้ให้คะแนนมากกว่าคำอื่น ๆ และคำนั้นถูกตัดเป็นคำเดียว
นอกจากนี้คุณยังสามารถสร้างความร้อนได้ตามกฎ ในจุดที่การเปลี่ยนแปลงภาษาเรารับรู้ขอบเขตของคำ ตัวอย่างเช่น "โอ้ฮ่าฮ่าㅜㅜจริงเหรอ?" คำพูดนั้นแบ่งออกเป็น [โอ้ฮ่าฮ่า, ㅜㅜ, จริง,?]
from soynlp . tokenizer import RegexTokenizer
tokenizer = RegexTokenizer ()
print ( tokenizer . tokenize ( '이렇게연속된문장은잘리지않습니다만' ))
# ['이렇게연속된문장은잘리지않습니다만']
print ( tokenizer . tokenize ( '숫자123이영어abc에섞여있으면ㅋㅋ잘리겠죠' ))
# ['숫자', '123', '이영어', 'abc', '에섞여있으면', 'ㅋㅋ', '잘리겠죠'] หากคำว่าพจนานุกรมได้รับการยอมรับอย่างดีคุณสามารถใช้มันเพื่อสร้างส่วนที่กำหนดไว้ล่วงหน้า อย่างไรก็ตามเพราะมันไม่ได้วิเคราะห์ morphemes, 'ทำ', 'da', 'และ' และ 'และ' และ 'และเป็นคำกริยาทั้งหมด Lemmatizer กำลังอยู่ในระหว่างการพัฒนาและองค์กร
pos_dict = {
'Adverb' : { '너무' , '매우' },
'Noun' : { '너무너무너무' , '아이오아이' , '아이' , '노래' , '오' , '이' , '고양' },
'Josa' : { '는' , '의' , '이다' , '입니다' , '이' , '이는' , '를' , '라' , '라는' },
'Verb' : { '하는' , '하다' , '하고' },
'Adjective' : { '예쁜' , '예쁘다' },
'Exclamation' : { '우와' }
}
from soynlp . postagger import Dictionary
from soynlp . postagger import LRTemplateMatcher
from soynlp . postagger import LREvaluator
from soynlp . postagger import SimpleTagger
from soynlp . postagger import UnknowLRPostprocessor
dictionary = Dictionary ( pos_dict )
generator = LRTemplateMatcher ( dictionary )
evaluator = LREvaluator ()
postprocessor = UnknowLRPostprocessor ()
tagger = SimpleTagger ( generator , evaluator , postprocessor )
sent = '너무너무너무는아이오아이의노래입니다!!'
print ( tagger . tag ( sent ))
# [('너무너무너무', 'Noun'),
# ('는', 'Josa'),
# ('아이오아이', 'Noun'),
# ('의', 'Josa'),
# ('노래', 'Noun'),
# ('입니다', 'Josa'),
# ('!!', None)]การใช้งานโดยละเอียดเพิ่มเติมอธิบายไว้ในบทช่วยสอนและบันทึกกระบวนการพัฒนาได้อธิบายไว้ที่นี่
สร้างเอกสารลงในเมทริกซ์เบาบางโดยใช้แรงบิด Knighter หรือใช้แรงบิด Knighter ที่เรียนรู้ สามารถปรับขั้นต่ำ / สูงสุดของระยะเวลาของความถี่ / ความถี่เอกสารได้ โหมด Verbose พิมพ์สถานการณ์เวกเตอร์ปัจจุบัน
vectorizer = BaseVectorizer (
tokenizer = tokenizer ,
min_tf = 0 ,
max_tf = 10000 ,
min_df = 0 ,
max_df = 1.0 ,
stopwords = None ,
lowercase = True ,
verbose = True
)
corpus . iter_sent = False
x = vectorizer . fit_transform ( corpus )หากเอกสารมีขนาดใหญ่หรือไม่ได้ใช้เมทริกซ์เบาบางทันทีคุณสามารถบันทึกเป็นไฟล์ได้โดยไม่ต้องใส่ไว้ในหน่วยความจำ ฟังก์ชั่น fit_to_file () หรือ to_file () บันทึกเวกเตอร์ความถี่คำสำหรับเอกสารหนึ่งฉบับทันทีที่คุณได้รับ พารามิเตอร์ที่มีอยู่ใน basevectorizer เหมือนกัน
vectorizer = BaseVectorizer ( min_tf = 1 , tokenizer = tokenizer )
corpus . iter_sent = False
matrix_path = 'YOURS'
vectorizer . fit_to_file ( corpus , matrix_path )คุณสามารถส่งออกเอกสารหนึ่งฉบับด้วยรายการ int แทนเมทริกซ์กระจัดกระจาย ในเวลานี้คำที่ไม่ได้เรียนรู้ใน Vectorizer.vocabulary_ จะไม่เข้ารหัส
vectorizer . encode_a_doc_to_bow ( '오늘 뉴스는 이것이 전부다' )
# {3: 1, 258: 1, 428: 1, 1814: 1}รายการ int เป็นไปได้ด้วยรายการของ Str
vectorizer . decode_from_bow ({ 3 : 1 , 258 : 1 , 428 : 1 , 1814 : 1 })
# {'뉴스': 1, '는': 1, '오늘': 1, '이것이': 1}การเข้ารหัสยังสามารถใช้ได้กับถุงคำในรูปแบบ dict
vectorizer . encode_a_doc_to_list ( '오늘의 뉴스는 매우 심각합니다' )
# [258, 4, 428, 3, 333]ถุงคำในรูปแบบ dict สามารถถอดรหัสได้
vectorizer . decode_from_list ([ 258 , 4 , 428 , 3 , 333 ])
[ '오늘' , '의' , '뉴스' , '는' , '매우' ]มันมีฟังก์ชั่นสำหรับบทสรุปของอิโมติคอนซ้ำ ๆ ในข้อมูลการสนทนาความคิดเห็นและออกจากเกาหลีหรือข้อความเท่านั้น
from soynlp . normalizer import *
emoticon_normalize ( 'ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ쿠ㅜㅜㅜㅜㅜㅜ' , num_repeats = 3 )
# 'ㅋㅋㅋㅜㅜㅜ'
repeat_normalize ( '와하하하하하하하하하핫' , num_repeats = 2 )
# '와하하핫'
only_hangle ( '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜabcd123!!아핫' )
# '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜ 아핫'
only_hangle_number ( '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜabcd123!!아핫' )
# '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜ 123 아핫'
only_text ( '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜabcd123!!아핫' )
# '가나다ㅏㅑㅓㅋㅋ쿠ㅜㅜㅜabcd123!!아핫'คำอธิบายโดยละเอียดเพิ่มเติมอยู่ในบทช่วยสอน
มันมีฟังก์ชั่นสำหรับการคำนวณเมทริกซ์การเกิดร่วมสำหรับการวิเคราะห์ความสัมพันธ์และข้อมูลร่วมกันที่ชาญฉลาด (PMI)
คุณสามารถสร้างเมทริกซ์โดยใช้ฟังก์ชั่น sent_to_word_contexts_matrix ด้านล่าง (คำ, คำบริบท) x คือ scipy.sparse.csr_matrix, (n_vocabs, ขนาด n_vocabs) IDX2VOCAB เป็นรายการของ STR ที่มีคำที่สอดคล้องกับแต่ละแถวคอลัมน์ของ x รับรู้คำว่าหน้าต่างด้านหน้าและด้านหลังเป็นบริบทของประโยคและคำนวณเฉพาะคำที่ปรากฏเป็นความถี่ของ min_tf หรือสูงกว่า Dynamic_weight มีน้ำหนักผกผันตามความยาวของบริบท หาก Windows เป็น 3 การเกิดร่วมของ 1, 2 และ 3 กำลังคำนวณเป็น 1, 2/3, 1/3
from soynlp . vectorizer import sent_to_word_contexts_matrix
x , idx2vocab = sent_to_word_contexts_matrix (
corpus ,
windows = 3 ,
min_tf = 10 ,
tokenizer = tokenizer , # (default) lambda x:x.split(),
dynamic_weight = False ,
verbose = True
)หากคุณป้อน X ซึ่งเป็นเมทริกซ์การเกิดร่วมใน PMI PMI จะคำนวณโดยแต่ละแกนของแถวและคอลัมน์ PMI_DOK เป็นรูปแบบ scipy.sparse.dok_matrix เฉพาะค่าของ min_pmi เท่านั้นที่เก็บไว้และค่าเริ่มต้นคือ min_pmi = 0 ดังนั้น pmi บวก (ppmi) อัลฟ่าเป็นพารามิเตอร์การปรับให้เรียบไปยัง pmi (x, y) = p (x, y) / (p (p) * (p) + อัลฟ่า) กระบวนการคำนวณใช้เวลานานดังนั้นตั้งค่าเป็น verbose = จริงเพื่อส่งออกความคืบหน้าในปัจจุบัน
from soynlp . word import pmi
pmi_dok = pmi (
x ,
min_pmi = 0 ,
alpha = 0.0001 ,
verbose = True
)คำอธิบายโดยละเอียดเพิ่มเติมอยู่ในบทช่วยสอน
มันมีฟังก์ชั่นสำหรับการชำระล้างข้อมูลม้า Sejong สำหรับการเรียนรู้รูปแบบการประมวลผลภาษาธรรมชาติ มันมีฟังก์ชั่นที่สร้างประเภทของข้อมูลการเรียนรู้ที่บริสุทธิ์ในรูปแบบของ morphem และคำพูดฟังก์ชั่นที่สร้างตารางและสร้างตารางและฟังก์ชั่นที่ทำให้ชิ้นส่วนและระบบการพูดง่ายขึ้นของ Sejong Malm
หากมีข้อผิดพลาดระยะห่างอาจเป็นเรื่องง่ายที่จะวิเคราะห์ข้อความโดยการลบออก จากข้อมูลที่คุณต้องการวิเคราะห์เรียนรู้การเว้นวรรคเอ็นจิ้นและใช้เพื่อแก้ไขข้อผิดพลาดการเว้นวรรค
โดยไม่ต้องเรียนรู้เครื่องทำแรงบิดหรือตัวแยกคำคุณสามารถดึงคำหลักจากกราฟสายย่อยโดยใช้อัลกอริทึม HITS
ตัวแยกคำหลัก มันมีตัวแยกคำหลักสองประเภทโดยใช้แบบจำลองและแบบจำลองทางสถิติโดยใช้การถดถอยโลจิสติก รองรับรูปแบบเมทริกซ์แบบเบาบางและรูปแบบไฟล์ข้อความใน scipy.sparse