- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 lucene 4.3.0 并且想用英语和日语字符标记文档。
An example is like "LEICA S2 カタログ (新品)"
The StandardAnalyzer "[leica] [s2] [カタログ] [新] [品]"
The JapaneseAnalyzer "[leica] [s] [2] [カタログ] [新品]"
在我项目的应用中,StandardAnalyzer对英文字符的处理比较好,例如[s2]优于[s][2]。 JapaneseAnalyzer 更擅长日语,例如[新品]到[新][品]。此外,JapaneseAnalyzer 有一个很好的功能,可以将全角字符“2”转换为“2”。
If I want the tokens to be [leica] [s2] [カタログ] [新品], it means:
1) English and numbers are tokenized by StandardAnalyzer. [leica] [s2]
2) Japanese are tokenized by JapaneseAnalyzer. [カタログ] [新品]
3) fullwidth character are converted to halfwidth by a filter. [s2]=>[s2]
how to implement this custom analyzer?
最佳答案
我会尝试的第一件事是弄乱传递给 JapaneseAnalyzer 的参数,特别是 Tokenizer.Mode (我对日语的结构一无所知,所以我对这些选项的意图没有任何帮助)。
除此之外
您需要为此创建自己的分析器。除非您愿意编写自己的 Tokenizer,否则最终结果可能是尽力而为。创建分析器非常简单,创建分词器意味着定义您自己的语法,这不会那么简单。
看看 JapaneseAnalyzer 的代码和 StandardAnalyzer ,特别是对 createComponents
的调用,这是创建自定义分析器所需的全部。
假设您得出结论 StandardTokenizer
对您来说是正确的,但否则我们将主要使用日语过滤器集,它可能看起来像:
@Override
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
//For your Tokenizer, you might consider StandardTokenizer, JapaneseTokenizer, or CharTokenizer
Tokenizer tokenizer = new StandardTokenizer(version, reader);
TokenStream stream = new StandardFilter(version, tokenizer);
stream = new JapaneseBaseFormFilter(stream);
stream = new LowerCaseFilter(matchVersion, stream); //In JapaneseAnalyzer, a lowercasefilter comes at the end, further proving I don't know Japanese.
stream = new JapanesePartOfSpeechStopFilter(true, stream, stoptags);
stream = new CJKWidthFilter(stream); //Note this WidthFilter! I believe this does the char width transform you are looking for.
stream = new StopFilter(matchVersion, stream, stopwords);
stream = new JapaneseKatakanaStemFilter(stream);
stream = new PorterStemFilter(stream); //Nothing stopping you using a second stemmer, really.
return new TokenStreamComponents(tokenizer, stream);
}
这是一个完全随机的实现,来自不了解问题的人,但希望它能为实现更有意义的分析器指明方向。在该过滤器链中应用过滤器的顺序很重要,所以要小心(即在英语中,LowerCaseFilter 通常较早应用,这样像 Stemmers 这样的东西就不必担心大小写)。
关于lucene - 如何在 lucene 中组合两个分词器(japaneseanalyzer 和 standardanalyzer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275510/
Lucene 5.x 和 2.x 之间 StandardAnalyzer 的默认行为有所不同,例如 that's H&M,使用如下代码: StandardAnalyzer analyzer = new
我已经下载了最新的Lucene 4.6.0和running it in netbeans . Lucence 3.6.x版本运行完美,但最新版本找不到org.apache.lucene.analysi
我正在研究 Lucene 3.x(源代码)。首先我下载了 来自 SVN 的最新源代码 稳定代码 3.0.2 来自:http://www.apache.org/dyn/closer.cgi/luce
当下面的代码执行时,我假设每次解析查询时都会从文件系统中读取停用词文件。除了这样做,我可以重用分析器的同一个实例而不是创建一个新实例吗?它是线程安全的吗? (经过大量谷歌搜索后,我找不到任何相关信息)
我正在使用 Lucene 4.3 为英文推文编制索引,但是我不确定要使用哪个分析器。 Lucene StandardAnalyzer 和 EnglishAnalyzer 有什么区别? 我还尝试使用以下
我正在尝试生成类似于 lucene 中的 QueryParser 所做的事情,但没有解析器,即通过 StandardAnalyzer 运行一个字符串,将其标记化并在 BooleanQuery 中使用
我将 Lucene 的 StandardAnalyzer 用于特定的索引属性。由于像 àéèäöü 这样的特殊字符没有按预期编入索引,我想替换这些字符: à -> a é -> e è -> e ä
我正在尝试使用 Lucene.NET,我正在关注此链接上提供的文档 https://lucenenet.apache.org/ 我使用 Lucene 版本 (4.8.0-beta00012) 和 .N
我正在使用 lucene 4.3.0 并且想用英语和日语字符标记文档。 An example is like "LEICA S2 カタログ (新品)" The StandardAnal
首先,对于 Tika 和 Lucene,我完全是个菜鸟。我正在阅读《Tika in Action》一书,尝试其中的示例。第 5 章给出了这个例子: package tikatest01; import
当使用 Lucene 实现标记化时,出现了与 org.apache.lucene.analysis.StandardAnalyzer 相关的问题,因为抛出了以下异常: The import org.a
我是 Apache Lucene 的新手。我目前使用的是最新版本:6.2.1 基于他们的官方文档:http://lucene.apache.org/core/6_2_1/core/org/apache
我使用 Lucene 在 Android 中创建了一本医学词典。单词和定义是丹麦语,我正在使用 StandardAnalyzer 来索引和搜索条目。这个想法是,当我点击我的 ListView 中的一个
https://github.com/larsga/Duke - 我正在使用 Duke - 进行重复数据删除。 我已经设置了 Duke(jar 文件 - Duke jar 以及 lucene jar
我有一个从 HDFS 文件生成的字符串 SparkRDD(名为 RDD1)。我还有一个字符串列表作为字典。我想在 RDD1 上应用映射函数,以便对于字符串的每一行,我在从字典构建的 Lucene 索引
我尝试使用 TermQuery 测试 Lucene 上的搜索。但是,似乎只有在使用 WhitespaceAnalyzer 时搜索才有效。当我切换到 StandardAnalyzer 时,测试失败了。
我正在阅读有关使用 Lucene 的 Hibernate 搜索引擎的信息,并且我能够在通过 mysql 数据库保存文章的 Article 类上按如下方式进行设置。我的目标是向用户显示他们在浏览器上搜索
我正在尝试使用 PyLucene,但找不到任何在当前版本中实际运行的代码示例。 (例如,参见http://nullege.com/codes/search/PyLucene.StandardAnaly
我是 lucene 的新手。我正在尝试在这里做教程 http://www.lucenetutorial.com/lucene-in-5-minutes.html 网站正在导入: import org.
当我尝试构建第一个 hibernate 应用程序时,发生以下错误NoClassDefFoundError Exception in thread "main" java.lang.NoClassDef
我是一名优秀的程序员,十分优秀!