基于Python的汉语分词系统
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
漢語分詞系統(tǒng)
目錄
漢語分詞系統(tǒng) 1
摘要 1
1 緒論 1
2 相關(guān)信息 1
2.1 實驗?zāi)繕?biāo) 1
2.2 編程語言與環(huán)境 2
2.3 項目目錄說明 2
3 訓(xùn)練測試 3
4 詞典構(gòu)建 3
5 正反向最大匹配分詞實現(xiàn) 3
5.1 正向最大匹配分詞-最少代碼量 3
5.2 反向最大匹配分詞-最少代碼量 4
6 正反向最大匹配分詞效果分析 5
7 基于機(jī)械分詞系統(tǒng)的速度優(yōu)化 6
2.2編程語言與環(huán)境
Python 3.7.9 ,Windows11,VScode
2.3項目目錄說明
目錄中存在Code和io_files兩個文件夾,Code文件夾中存放第一部分到第四部分實驗代碼,io_files文件夾中存放第一部分到第四部分實驗產(chǎn)生文件和依賴文件。
io_files文件夾:
?199801_sent.txt 為標(biāo)準(zhǔn)文本,是1998 年 1 月《人民日報》未分詞語料,用于產(chǎn)生訓(xùn)練集和測試集
?199801_seg&pos.txt 為標(biāo)準(zhǔn)文本,是1998 年 1 月《人民日報》的分詞語料庫,用于產(chǎn)生測試集對應(yīng)的分詞標(biāo)準(zhǔn)答案
?dic.txt為自己形成的分詞詞典,存放根據(jù)訓(xùn)練集產(chǎn)生的詞典
?train.txt 為訓(xùn)練集,取分詞語料庫中 的數(shù)據(jù)作為訓(xùn)練集用于生成詞典
?std.txt 為標(biāo)準(zhǔn)答案, 取分詞語料庫中另外 的數(shù)據(jù)作為標(biāo)準(zhǔn)答案,與分詞結(jié)果進(jìn)行比對計算準(zhǔn)確率、召回率和F 值
?test.txt 為測試集,在未分詞語料中取與標(biāo)準(zhǔn)答案相對應(yīng)的 的數(shù)據(jù)作為測試集產(chǎn)生分詞結(jié)果
?seg_FMM.txt 為全文的分詞結(jié)果,使用正向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將199801_sent.txt文件進(jìn)行分詞
?seg_BMM.txt為全文的分詞結(jié)果,使用反向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將199801_sent.txt文件進(jìn)行分詞
?score.txt為第三部分生成的評測分詞效果的文本,其中包括準(zhǔn)確率(precision)、召回率(recall)和F 值
?seg_FMM_1_10.txt 為測試集分詞結(jié)果,使用正向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將test.txt文件進(jìn)行分詞
?seg_BMM_1_10.txt 為測試集分詞結(jié)果,使用反向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將test.txt文件進(jìn)行分詞
?better_seg_FMM.txt 為測試集分詞結(jié)果,使用優(yōu)化后的正向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將test.txt文件進(jìn)行分詞,計算分詞時間與seg_FMM_1_10.txt分詞時間進(jìn)行比較
?better_seg_BMM.txt 為測試集分詞結(jié)果,使用優(yōu)化后的反向最大匹配分詞,使用train.txt文件作為訓(xùn)練集,將test.txt文件進(jìn)行分詞,計算分詞時間與seg_BMM_1_10.txt分詞時間進(jìn)行比較
?TimeCost.txt 為分詞所用時間,存放優(yōu)化前和優(yōu)化后的分詞時間
Code文件夾:
?part_1.py 為實驗第一步詞典的構(gòu)建代碼,其中包括生成分詞詞典函數(shù)以及生成訓(xùn)練集、測試集和標(biāo)準(zhǔn)答案的函數(shù)
?part_2.py 為實驗第二步正反向最大匹配分詞實現(xiàn)代碼,其中包括讀取詞典內(nèi)容函數(shù)、正向最大匹配分詞函數(shù)和反向最大匹配分詞函數(shù)
?part_3.py 為實驗第三步正反向最大匹配分詞效果分析代碼,其中包括計算評測得分函數(shù),計算總詞數(shù)和正確詞數(shù)函數(shù),計算準(zhǔn)確率、召回率和f值函數(shù)以及獲取詞對應(yīng)下標(biāo)的函數(shù)
?part_4.py 為實驗第四步基于機(jī)械匹配的分詞系統(tǒng)的速度優(yōu)化代碼,其中包括Trie樹的實現(xiàn)以及其中添加字符串函數(shù),查找字符串函數(shù),在子節(jié)點中查找字符對應(yīng)位置函數(shù)和返回哈希值函數(shù),還有獲得正向最大匹配的詞典樹函數(shù),獲得反向最大匹配的詞典樹函數(shù),優(yōu)化后正向最大匹配分詞函數(shù),優(yōu)化后反向最大匹配分詞函數(shù),全文分割函數(shù)以及計算時間函數(shù)
訓(xùn)練測試
訓(xùn)練集、測試集和標(biāo)準(zhǔn)答案來源于199801_sent.txt 和199801_seg&pos.txt文本文件,訓(xùn)練集為199801_seg&pos.txt文件的 ,標(biāo)準(zhǔn)答案為剩下的 ,對199801_seg&pos.txt文件各行取模,若行數(shù)模10余0,則加入測試集,本文轉(zhuǎn)載自http://www.biyezuopin.vip/onews.asp?id=16703剩余的加入標(biāo)準(zhǔn)答案。
在199801_sent.txt中取與標(biāo)準(zhǔn)答案對應(yīng)行加入測試集。
詞典構(gòu)建
構(gòu)建詞典時,不將量詞加入詞典,可以減少詞數(shù),帶來空間和時間上的優(yōu)化,且詞典中不存在重復(fù)詞。
讀取訓(xùn)練集內(nèi)容,進(jìn)行逐行提取,以詞前的空格和詞后的 ’ / ’ 字符提取詞,若詞前存在 ’ [ ’ 字符則去除該字符。
將提取出來的詞加入列表,在訓(xùn)練集所有內(nèi)容提取完畢后對列表進(jìn)行排序。
將列表輸出至詞典文件生成詞典,一行存儲一個詞便于后續(xù)讀取。
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
總結(jié)
以上是生活随笔為你收集整理的基于Python的汉语分词系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用福禄克DSX系列测试仪部署MPTL模
- 下一篇: 日常如何维护OA系统?