HanLP-停用詞表的使用示例
停用詞表的修改
停用詞表在 “pyhanlp\static\data\dictionary”路徑下的“stopwords.txt”檔案中,CoreStopWordDictionary.apply方法支援去除停用詞。如果需要修改停用詞表,則直接編輯檔案“stopwords.txt”,之後刪除路徑下的“stopwords.txt.bin”,執行CoreStopWordDictionary.apply後即可自動生效。有關驗證的方法見“驗證是否生效”小節。
自定義詞語過濾方法
使用者可以透過編寫 “pyhanlp\static”路徑下的“MyFilter.java”檔案設定自己的詞語過濾方法。應當注意這裡處理的語言單位是詞語,而不是字。編輯完畢後需要編譯該檔案並生成位元組碼檔案,之後執行CoreStopWordDictionary.apply方法時就會自動呼叫使用者自己的詞語過濾方法了。這裡給出一個自定義過濾方法的編寫示例程式碼。
import os
from pyhanlp.static import STATIC_ROOT, HANLP_JAR_PATH
java_code_path = os.path.join(STATIC_ROOT, 'MyFilter.java')
with open(java_code_path, 'w') as out:
java_code = """
import com.hankcs.hanlp.dictionary.stopword.CoreStopWordDictionary;
import com.hankcs.hanlp.dictionary.stopword.Filter;
import com.hankcs.hanlp.seg.common.Term;
public class MyFilter implements Filter
{
public boolean shouldInclude(Term term)
{
if (term.nature.startsWith('m')) return false; // 數詞過濾
if (term.nature.startsWith('q')) return false; // 量詞過濾
if (term.nature.startsWith('t')) return false; // 時間詞過濾
if (term.nature.startsWith("w")) return false; // 過濾標點符號
return !CoreStopWordDictionary.contains(term.word); // 停用詞過濾
}
}
"""
out.write(java_code)
os.system('javac -cp {} {} -d {}'.format(HANLP_JAR_PATH, java_code_path, STATIC_ROOT))
驗證是否生效
本節給出停用詞表修改後以及使用了自定義詞語過濾方法的示例程式碼。
from pyhanlp import *
# 載入停用詞類
CoreStopWordDictionary = JClass("com.hankcs.hanlp.dictionary.stopword.CoreStopWordDictionary")
# 載入自定義詞語過濾邏輯
MyFilter = JClass('MyFilter')
CoreStopWordDictionary.FILTER = MyFilter()
term_list = HanLP.segment(text)
CoreStopWordDictionary.apply(term_list)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2645141/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HanLP-實詞分詞器詳解HanLP分詞
- pyhanlp 停用詞與使用者自定義詞典功能詳解HanLP
- python使用jieba實現中文文件分詞和去停用詞PythonJieba分詞
- 如何在java中去除中文文字的停用詞Java
- 使用ICTCLAS JAVA版(ictclas4j)進行中文分詞(附ictclas,停用詞表,commons-lang-2.4.jar下載地址)...Java中文分詞JAR
- python呼叫jieba(結巴)分詞 加入自定義詞典和去停用詞功能PythonJieba分詞
- oracle全文索引之停用詞的萬用字元功能Oracle索引字元
- Spark中分散式使用HanLP(1.7.0)分詞示例Spark分散式HanLP分詞
- ES 實現實時從Mysql資料庫中讀取熱詞,停用詞MySql資料庫
- Partition 表掃描的過程,使用key作為謂詞與使用非key值做謂詞....
- Oracle中如何停用JOB及如何使用JOBOracle
- hanlp 載入遠端詞庫示例HanLP
- HanLP-地名識別除錯方法HanLP地名識別除錯
- 騰訊WebQQ年底停用Web
- 表為多列為null的表之索引示例Null索引
- 使用Broker管理Data Guard——停用、改保護模式等模式
- win10 停用 dedender方法 win10 怎麼停用defenderWin10
- 關於oracle with table as 建立臨時表的用法示例以及使用with as 的優點Oracle
- 水晶報表官方示例
- Android 圖表開源庫調研及使用示例Android
- HanLP-命名實體識別總結HanLP
- 授權訪問使用者的所有表.、批量建立和表名一致的同義詞
- 蘋果手機已停用解鎖辦法 iPhone已停用怎麼辦?蘋果iPhone
- xrender中的FormRender使用示例ORM
- GPUImageRawDataInput 使用示例GPUUIAI
- JMeter使用示例JMeter
- Tcpdump使用示例TCP
- rsync 使用示例
- javaJedis使用示例Java
- AntDesignBlazor示例——Modal表單Blazor
- 第七講 顯示例表
- Hanlp-地名識別除錯方法詳解HanLP地名識別除錯
- 將搜尋關鍵詞高亮顯示例項程式碼
- Oracle 名詞術語 派生表Oracle
- Crystal reports 9 的使用示例
- MySQL join連表查詢示例MySql
- dataview 元件使用示例View元件
- 索引器使用示例索引