问题是,如你所知,Unicode图表中有数千个字符,我想将所有相似的字符转换为英文字母中的字母.
例如,这里有一些转换:
?->H
?->V
?->Y
?->O
?->C
t?? ?????y --> the Family
...
Run Code Online (Sandbox Code Playgroud)
我看到有超过20个版本的字母A/a.而且我不知道如何对它们进行分类.它们看起来像大海捞针.
完整的unicode字符列表位于http://www.ssec.wisc.edu/~tomw/java/unicode.html 或http://unicode.org/charts/charindex.html.只需向下滚动即可看到字母的变化.
如何用Java转换所有这些?请帮我 :(
我需要做一些相当简单但没有哈希映射硬编码的东西.
我有一个字符串s,它是在西里尔语中我需要一些关于如何使用自定义类型的过滤器将其转换为拉丁字符的示例(给出一个纯粹的拉丁语示例,以便在String s = sniff时不会混淆任何人;我希望它查找嗅闻并将其更改为其他内容(可能还有组合).
我可以看到ICU4j可以做这种事情,但我不知道如何实现它,因为我找不到任何有用的例子(或者我只是愚蠢).
任何帮助表示赞赏.
谢谢
最好的祝福,
PS我需要批量翻译.我不关心样式或动态音译只是关于ICU4j批量音译的样子的一些基本例子.
KI实际上得到了它.
import com.ibm.icu.text.Transliterator;
public class BulgarianToLatin {
public static String BULGARIAN_TO_LATIN = "Bulgarian-Latin/BGN";
public static void main(String[] args) {
String bgString = "????????";
Transliterator bulgarianToLatin = Transliterator.getInstance(BULGARIAN_TO_LATIN);
String result1 = bulgarianToLatin.transliterate(bgString);
System.out.println("Bulgarian to Latin:" + result1);
}
}
Run Code Online (Sandbox Code Playgroud)
也是基于规则的音译的最后一次编辑(如果您不希望使用预先存在的一次或只是想要定制的东西)
import com.ibm.icu.text.Transliterator;
public class BulgarianToLatin {
public static String BULGARIAN_TO_LATIN = "Bulgarian-Latin/BGN";
public static void main(String[] args) {
String bgString = "? ? ? ? ? ? ? ? ? ? …Run Code Online (Sandbox Code Playgroud) 我使用solr拼写检查俄语.当您使用西里尔字母键入时,一切都可以,但是当您使用拉丁字符键入时它不起作用.
我希望拼写检查正确,当你用西里尔字母打字时,你什么时候打字拉丁字符.并用西里尔字母对文本进行纠正.
For example, when you type:
????????????? or televidenieee
It should correct to:
???????????
Run Code Online (Sandbox Code Playgroud)
schema.xml中:
<fieldType name="spell_text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[,.;:]" replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="'s" replacement=""/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
<filter class="solr.LengthFilterFactory" min="3" max="256" />
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
solrconfig.xml中
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">spellcheck</str>
<str name="classname">solr.IndexBasedSpellChecker</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="spellcheckIndexDir">./spellchecker</str>
<str name="accuracy">0.75</str>
</lst>
<lst …Run Code Online (Sandbox Code Playgroud)