2017-03-22 58 views
9

對於我們構建的應用程序,我們使用簡單的統計模型進行詞語預測(如Google Autocomplete)來指導搜索。預測詞組而不僅僅是下一個詞

它使用從相關文本文檔的大型文集收集的ngram序列。通過考慮先前的N-1個詞,它使用Katz back-off以概率的降序建議5個最可能的「下一個詞」。

我們希望將此擴展爲預測短語(多個單詞)而不是單個單詞。但是,當我們預測一個短語時,我們不希望顯示其前綴。

例如,考慮輸入the cat

在這種情況下,我們想預測如the cat in the hat,但不是the cat in &而不是the cat in the

enter image description here

假設:

  • 我們沒有獲得過去的搜索統計

  • 我們沒有標記的文本數據(例如,我們不知道的部分語音)

什麼是典型的W ^是否可以進行這種多詞預測?我們嘗試了較長詞組的乘法和加法加權,但我們的權重是任意的,並且適合我們的測試。

回答

4

對於這個問題,你需要定義你認爲是一個有效的完成 - 那麼應該有可能提出一個解決方案。

在你給出的例子中,「帽子裏的貓」比「貓中的貓好」。我可以把它解釋爲「它應該以一個名詞結尾」或者「它不應以過分常見的詞結束」。

  1. 您禁止使用「標籤中的文本數據」,但你可以使用預訓練模型(例如NLTK,spacy,StanfordNLP)猜詞類,並企圖限制的預測,只完成名詞短語(或以名詞結尾的序列)。請注意,您不一定需要標記所有輸入模型的文檔,但只需標記您在自動填充數據庫中保留的那些短語。

  2. 或者,您可以避免以停用詞(或非常高頻詞)結尾的完成詞。 「in」和「the」都是幾乎所有英文文檔中出現的詞,因此您可以通過實驗找到幫助您過濾的頻率截止(不能以超過50%的文檔中出現的詞結尾)。你也可以看看短語 - 如果短語的結尾作爲一個較短的短語是非常普遍的話,那麼標記它就沒有意義,因爲用戶可以自己想出它。

  3. 最終,你可以創建一個有標記的好壞實例集,並嘗試創建一個基於單詞特徵的受監督的重新排序器 - 上述兩個想法都可能是監督模型中的強大特徵(文檔頻率= 2, pos標籤= 1)。這通常是帶數據的搜索引擎可以實現的。請注意,您不需要搜索統計信息或用戶,只需要爲幾百個查詢標記前5名完成。建立一個正式的評估(可以自動化的方式運行)可能有助於在將來改進系統。任何時候你看到一個不好的完成,你可以將它添加到數據庫,並做一些標籤 - 隨着時間的推移,監督方法會變得更好。

相關問題