這裏是我使用波蘭變音符正常化的波蘭停止列表的快速實現。
class StopList
{
private HashSet<String> set = new HashSet<String>();
public void add(String word)
{
word = word.trim().toLowerCase();
word = normalize(word);
set.add(word);
}
public boolean contains(final String string)
{
return set.contains(string) || set.contains(normalize(string));
}
private char normalizeChar(final char c)
{
switch (c)
{
case 'ą':
return 'a';
case 'ć':
return 'c';
case 'ę':
return 'e';
case 'ł':
return 'l';
case 'ń':
return 'n';
case 'ó':
return 'o';
case 'ś':
return 's';
case 'ż':
case 'ź':
return 'z';
}
return c;
}
private String normalize(final String word)
{
if (word == null || "".equals(word))
{
return word;
}
char[] charArray = word.toCharArray();
char[] normalizedArray = new char[charArray.length];
for (int i = 0; i < normalizedArray.length; i++)
{
normalizedArray[i] = normalizeChar(charArray[i]);
}
return new String(normalizedArray);
}
}
我無法在網絡中找到任何其他解決方案。因此,也許這將是有益的人
期待的'ł'所有這些字符都只是[附加符號](HTTP://en.wikipedia。org/wiki/Diacritic)(我看到的至少是ogonek,尖銳和點),並且可以使用'Normalize'輕鬆標準化。我建議結合這兩種方法。 – BalusC 2010-09-28 16:23:04
Normalize是.NET庫嗎?對不起......這是從我的Java代碼片段:)並寫「網」我想到的是InterNet,而不是「.NET」。 – 2010-09-29 08:45:36