而不是一個二進制is-word-or-not問題,你可能會考慮的是一個詞是胡言亂語的概率。然後,您可以選擇一個您喜歡的閾值。
對於計算單詞probalities,你可以試試網頁語言模型API。作爲一個例子,你可以看看聯合概率。爲了您的組詞,響應如下所示(爲body
語料庫值):
{
"results": [
{
"words": "sdf#%#",
"probability": -12.215
},
{
"words": "asfsds",
"probability": -12.215
},
{
"words": "b",
"probability": -3.127
},
{
"words": "hi",
"probability": -3.905
},
{
"words": "my",
"probability": -2.528
},
{
"words": "name",
"probability": -3.128
},
{
"words": "is",
"probability": -2.201
},
{
"words": "sam.",
"probability": -12.215
},
{
"words": "sam",
"probability": -4.431
}
]
}
你會注意到有幾個特質的:
- 概率爲負。這是因爲它們是對數的。
- 所有術語都是大小寫合併的。這意味着語料庫不會將 區分出來,比如GOAT和山羊。
- 來電必須爲EN-US市場進行 一定量的正常化自己(的
sam.
注概率VS sam
)
- 語料庫纔可用。根據您的使用情況,這可能會產生問題 。
一種先進的使用情況下,將計算條件概率,在單詞的上下文中它前面一個字的即概率。
謝謝cthrash。這看起來很有希望。你有沒有關於規範文本的最佳方法的提示?我認爲只有英文版我才能刪除任何不是[A-Za-z]的東西。但是,如果/當他們增加對更多語言的支持時,這種方法不會很好地工作(或根本不工作)。 – Sam
我不知道WebLM的標記化是否公開。例如,您不希望將所有非字母數字的字符都去掉,特別是如果您想標記「good#%&'爲非字詞。現在可以保持簡單,比如說,刪除任何標點符號,然後是空格。 – cthrash