2012-05-23 24 views
1

我正在使用C#編寫Windows Phone應用程序,我想知道是否有正則表達式/庫/幫助程序或任何其他語言來獲取當前時態動詞從輸入動詞有沒有什麼辦法可以將英文動詞轉換爲C#中的現在式?

示例(或基本形式動詞):

住>>住

內置>>建立

工作>>工作

到目前爲止,我發現一個鬆散的解決方案單數複數的單詞。

我認爲這可以修改/添加一些正則表達式規則,使其與時態一起工作。 但我不是在正則表達式好(既不是英語語言學)

http://lotsacode.wordpress.com/2010/03/05/singularization-pluralization-in-c

我的情況是: 當用戶試圖找到一些話,是不是在數據庫中它會提示一些 像輸入「龍等「它會給」龍「的結果

+0

你想要做什麼被稱爲[stemming](http://en.wikipedia.org/wiki/Stemming)。 [這個問答](http://stackoverflow.com/questions/7611455/how-to-perform-stemming-in-c)在C#中有一個Porter Stemmer,可能會有用。 – Junuxx

+0

不知道這是否會有所幫助,但比我猜想的更好。 http://wordnet.princeton.edu/wordnet/download/current-version/#win –

+0

@Junuxx感謝您的關鍵字,它幫助我瞭解很多。 – anuith

回答

0

我認爲你應該嘗試使用SharpNLP,沒有使用它,但肯定它會幫助你在某種程度上也看到這個Article

2

解決方案可能需要比您想象的更復雜。任何有效的方法都需要包含某種字典,因爲英語中有很多不規則的動詞。通過考慮「鋸」這個詞來說明困難。它是一個名詞嗎?它是一個動詞嗎?它是動詞「看到」的現在時態嗎?它是動詞「看」的過去式嗎?這隻能從上下文中推斷出來。

總之,這不是簡單的文本處理。必須有邏輯可以應用英語短語的上下文處理。

+0

謝謝你的回答。 我只想要一個鬆散的解決方案來向用戶建議一些東西。 – anuith

+0

更不用說那些不知道是否在那裏使用的人,他們或他們的問題! ;) –

相關問題