問題 我有一個公司名稱/股票代碼列表,並希望在某些文本中識別它們。自動識別文本中的公司名稱
public interface AutoTaggingService() {
public List<Tags> getTags(String fullText);
}
在最簡單的實現,它可以遍歷所有的公司名稱,做一個精確匹配,但這種既慢(公司的大名單),並且不會對英語拼寫變異做的非常好。
可能的解決方案 一個我能想到這樣做的方式是向公司名稱/股票代號Lucene的/ Solr的索引列表,並使用全文作爲查詢。此查詢的結果將是與全文相匹配的文檔(公司)列表,以及相關性分數。可以定義閾值,只有高分的公司纔會被作爲標籤返回。可以定義自定義詞幹和公司名稱的同義詞列表以提高準確性。
惑 當我在過去使用的Lucene/Solr的,在搜索索引文件包含比較長的文字(例如,文章的集合),並且查詢會相對較短。對於我現在要做的事情,情況是相反的。這會影響索引或相關性並使這種方法不可靠嗎?
問題
- 是我的解決方案來解決這個問題的好辦法?
- 我可以使用classifier並使用公司列表作爲培訓數據來實現此目的嗎?
- 任何其他建議如何有效和高準確度地做到這一點。
不要爲了這類任務而拖延使用SOLR。在最近的3.5公告中,他們將SOLR描述爲「變身爲NoSQL數據存儲」。 – nickdos 2011-12-16 21:45:10
Solr可以使用,但很多選擇。搜索'命名實體提取'。這是你要求的正式名稱 – 2011-12-17 00:46:04