我有一個案例,我有一個關鍵字數組。我想在給定的字符串中找到它們的匹配,並在每個字符前後返回x個單詞。關鍵字近似匹配 - 選項?
我可以編寫循環引擎,遍歷每個循環的引用,返回給定的索引,並根據這些循環執行串聯的子串,但這看起來有點冗長。
我聽說過Lucene,但不確定是否實施整個框架來做到這一點是值得的。另外,如果可能的話,我如何用Lucene完成?
謝謝。
我有一個案例,我有一個關鍵字數組。我想在給定的字符串中找到它們的匹配,並在每個字符前後返回x個單詞。關鍵字近似匹配 - 選項?
我可以編寫循環引擎,遍歷每個循環的引用,返回給定的索引,並根據這些循環執行串聯的子串,但這看起來有點冗長。
我聽說過Lucene,但不確定是否實施整個框架來做到這一點是值得的。另外,如果可能的話,我如何用Lucene完成?
謝謝。
也許正則表達式,將有助於... 這建立相匹配的字符串列表(最多前3個字)的關鍵字(後可達3個字)
編輯:我錯過了兩個0和一些@s 。再試一次。
private static void GetMatches (string s)
{
string[] keywords = {"if", "while", "do"};
int x = 3; // words before and after
string ex =
@"(\w+\W+){0," + x + @"}\b(" + string.Join("|", keywords) + @")\b\W+(\w+\W+){0," + x + @"}";
Regex regex = new Regex(ex);
List<string> matches = new List<string>();
foreach (Match match in regex.Matches (s))
{
matches.Add(match.Value);
}
}
我做了類似的事情,並試圖使用Lucene.net。 Lucene並不是以一種有效的方式來構建你想要的,然而,它確實有一些很好的標記器可以使用。 – 2011-06-14 19:19:11