1. 程式人生 > >Spring框架中呼叫HanLP分詞的方法

Spring框架中呼叫HanLP分詞的方法

事情是這樣的,最近實驗室在搞一個Java Web的專案,用的Spring MVC的框架。專案組有很多沒做過Spring的學弟學妹,為了提高效率,我讓大家自己先拋開Spring來寫自己負責的模組,我來把各個模組在Spring裡整合。 專案裡有一個文字分析的模組是一個學妹負責的,裡面用到了HanLP,我在整合的時候直接用maven新增的依賴,等整合好了測試的時候發現怎麼也測不過,問了學妹才發現為了做實體識別,她用了一個很有意思的方法,自己改了HanLP的詞典,手動加了好多詞,而且後期版本迭代中還有可能繼續改。。。。

改了HanLP的詞典就意味著不能用maven直接匯入倉庫裡的包了,只能直接將修改後的data檔案放到本地,然後指定路徑給HanLP。搜了一下網上很多方法,都是在專案部署的時候,把HanLP的詞典資料放到伺服器上一個固定位置上,然後再配置HanLP的配置檔案,指定一個固定位置。這種方法雖然直接,但是不能把HanLP的詞典資料跟整個專案打包到一起,管理起來很麻煩。倘若把資料直接作為專案的資原始檔,部署到Tomcat上後無論怎麼在配置裡寫路徑都會提示找不到詞典檔案。研究了一下HanLP的issue之後,我發現這個專案支援自定義讀寫檔案的IO類。在一個將詞典資料放到HDFS上的一個blog啟發下,我想了一個很雞賊的方法,我重寫一個IOAdapter類,使用讀寫靜態資原始檔的方法讀取詞典資料了,這樣不就可以把data跟專案打包到一起了嘛。

程式碼如下: 在這裡插入圖片描述

整好了之後把data資料夾和hanlp.properties放到專案的資原始檔夾裡,在配置檔案裡修改一下路徑和IOAdapte: 在這裡插入圖片描述 不知道正確的解決方案應該是啥,感覺這個方法還是很雞賊的。

文章來源於狼血wolfblood的部落格