3 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個贊
如果您有大量輸入和輸出對,則可以將其視為序列到序列任務(wù)。輸入可以被視為源,輸出可以被視為目標(biāo)。您可以使用OpenNMT輕松開發(fā)基線模型。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊
不太清楚您如何解決您的具體問題,但讓我介紹幾種解決文本相關(guān)問題的方法,因?yàn)檫@似乎是您感興趣的。
0 級靜態(tài)文本哈希
如果,這是一個很大的如果,您的輸入是靜態(tài)的,您可以將輸入映射到輸出的摘要。但是,正如您提到的,這很容易被破壞。即使多一個空格也會導(dǎo)致不匹配,這就是它的級別為 0 的原因。
1 級預(yù)處理您的輸入:
刪除單詞之前、之后和之間的所有多余空格。
此步驟會將您的輸入轉(zhuǎn)換為:
Enjoy?tea?morning?bread?lunch.?Enjoy?taste?garlic?chicken?dinner. day?starts?cold?coffee.?noon?rice?fish?curry.
接下來,您可以刪除動詞詞形變化,這不適用于您的示例,但我們假設(shè)您有一個類似以下的句子:
drink?tea,?drank?juice?and?drinks?soda.
這句話你就變成:
drink?tea,?drink?juice?drink?soda
您可以更深入地進(jìn)行同義詞規(guī)范化,例如:
drink?tea,?sip?water,?slurped?a?juice,?swallow?beer
那么,他們都將變成:
drink?tea,?drink?water,?drink?juice,?drink?beer
完成這些步驟后,您就擁有了一種處理文本的非統(tǒng)計(jì)方式。這一切都?xì)w結(jié)為消除任何冗余和語言的豐富性并注重字面意思。
當(dāng)然,這種方法會失去英語中包含的大量價值。你不能諷刺,你不能進(jìn)行類比。因此,這適用于某些領(lǐng)域,但并不是那么先進(jìn)。這種方法更多的是文本處理而不是語言處理??吹讲煌?/p>
如果您需要更智能的方法來解決此問題,您應(yīng)該研究全文搜索算法
2 級全文搜索算法
有多種方法可以做到這一點(diǎn),這里是一種。你有這樣一句話:
I?want?pizza
這個搜索詞將變成
want?piz?za
并且會尋找
want?piz piz?za want?za
這是非?;镜臇|西,它只是向您展示原始文本處理的工作原理以及實(shí)現(xiàn)此目的的方法。也許你可以讓你的輸入通過級別 1 進(jìn)行處理,使它們更簡單、變量更少,然后讓它們通過級別 2 進(jìn)行處理,以便在數(shù)據(jù)庫中建立索引,然后你就有了一個很好的方法來查詢它們
NLP 3 級 - 自然語言處理
這仍然不是機(jī)器學(xué)習(xí),但它更智能,并且建立在所有其他步驟之上?;旧?,您會清除輸入的無意義內(nèi)容,并嘗試對其應(yīng)用英語語法結(jié)構(gòu)。
4級深度學(xué)習(xí)的東西
基本上,谷歌。你會得到一堆文本、一堆搜索查詢、一堆將查詢映射到文本的用戶跟蹤數(shù)據(jù)。您將所有這些輸入到神經(jīng)網(wǎng)絡(luò)中,統(tǒng)計(jì)模型將為您檢測模式并讓您的搜索變得更好。
概括
如果這是一個認(rèn)真的項(xiàng)目,請研究 NLU。當(dāng)您跟蹤使用情況時,它會給您一個不錯的結(jié)果。然后,當(dāng)您擁有足夠的用戶數(shù)據(jù)時,就可以進(jìn)行深度學(xué)習(xí)。沒有簡單的方法可以解決這個問題,您要么手動執(zhí)行此操作,要么實(shí)現(xiàn)具有其中一些功能的數(shù)據(jù)庫,例如elasticsearch。但正如其中提到的評論之一,php 不是一種用于此目的的語言。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊
如果您的輸入確實(shí)已知,那么您可以使用str_replace()例如
$input = 'Enjoy your tea in the morning then have some bread in the lunch. Enjoy the taste of a garlic chicken in the dinner.
Your day starts with cold coffee. In the noon have some rice and fish curry.';
$old = array('Enjoy your ', ' then have ', '. Enjoy the taste of a ', 'Your day starts with ', '. In the noon have ');
$new = array('Have ' , '. Have ' , '. Enjoy ' , 'Have ' , '. Have ' );
$output = str_replace($old, $new, $input);
請注意區(qū)分大小寫以及空格、句點(diǎn)和其他標(biāo)點(diǎn)符號。
如果您的輸入不太為人所知,那么您可以像您猜測的那樣使用正則表達(dá)式。
- 3 回答
- 0 關(guān)注
- 189 瀏覽
添加回答
舉報