簡體   English   中英

使用不正確的自然語言字符串處理命令

[英]Processing commands with inaccurate natural language strings

我們正在設計一個可以接受這種格式的命令的系統

command context

上下文是從大約200個元組的單詞列表中定義的,例如:

physical therapy
cardiac
physician visit
hospital inpatient
hospital outpatient
etc.

我們希望系統不僅能夠糾正用戶錯誤,例如拼寫錯誤,而且希望了解“物理療法”與“物理療法師”相同,並且還接受同義詞

最后,如果不是完全匹配,則應要求用戶區分最佳匹配

這就是我正在考慮的方式:

  1. 阻止上下文詞和傳入查詢
  2. 從查詢中刪除/隔離命令字符串
  3. 檢查並糾正所有字謎(但是:這僅涵蓋一類拼寫錯誤)
  4. 尋找完全匹配的單詞
  5. 尋找“緊密匹配”

這似乎不是一個整潔的解決方案,尤其是步驟3和5。

有什么更好/更容易的方法? 任何使用C#編寫的庫,加分。

Lucene可以這樣做嗎? 任何指導表示贊賞。

謝謝!

對於您的目的來說,它可能太不精確了,但是Soundex是一種常見的算法,用於判斷兩個單詞是否“聽起來相似”。

我認為Lucene最好只在第4步和第5步應用,因為Lucene當前僅支持“全局”意義上的近似匹配(通配符-“?”用於匹配單個字符,“ *”用於匹配多個字符)。

關於近似匹配,有一整套文獻-我將從agrep工作開始,然后從那里開始(但是部分原因是因為我熟悉agrep)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM