知识点
相关文章
更多最近更新
更多solr中mmseg4j自定义词库配置
2019-03-27 01:19|来源: 网路
- mmseg4j是一个比较流行的中文分词,具体介绍见:http://code.google.com/p/mmseg4j/
- schema.xml 配置文件:
<fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/data/web/search_cores/multicore/dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="com.chenlb.mmseg4j.solr.CutLetterDigitFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
主要是红色部分(dicPath="/data/web/search_cores/multicore/dic"/>),可以使用相对solr.home的地址,或者绝对地址。经过分析mmseg4j源代码发现,如果不指定就是默认在 CWD/data 目录(程序运行当前目录的data子目录)下找.如果填的是相对地址,则是相对solr.home的路径。当然,最好使用绝对地址,相对的容易出错,不好debug。
- resin服务器配置的solr.home:
<web-app id="/" document-directory="/data/web/projects/xiaozhao-solr"> <stdout-log path="/data/logs/zhaopin-resin_solr-stdout.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/> <stderr-log path="/data/logs/zhaopin-resin_solr-stderr.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/> <character-encoding>utf-8</character-encoding> <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>/data/web/search_cores/multicore</env-entry-value> </env-entry> </web-app>
- 不加词库效果如下:
- 自定义词库只要放到/data/web/search_cores/multicore/dic目录下,以words开头,dic结尾,每行一个词即可。如:words-my.dic
白云山 I B M 3 二次修改
加入自定义词后分词效果如下:
从上图可以看出,自定义词库已经生效。
遗留问题:加入英文字母后,分词效果仍没有,目前只对中文分词生效,英文如果想对单个字母分词,需要进一步分析。有知道的朋友,欢迎留言~
转自:http://blog.csdn.net/alen1985/article/details/8501021
相关问答
更多-
Go中是否有mmseg或者我可以从Go调用自定义的C函数吗?(Is there mmseg in Go or can I call a self-defined C function from Go?)[2023-08-11]
您可以按照本教程中的描述调用use C Libs: http://cheesesun.blogspot.de/2009/12/basic-cgo.html 和: http://siganakis.com/linking-c-libraries-with-go-lang-and-stdc99 或者您可以查看此库: https://github.com/awsong/MMSEGO 它适用于中文,但您可以使用它将自己的算法放在那里。 you can call use C Libs as described in ... -
如何使用docs在Python中创建字典的示例: tel = {'jack': 4098, 'sape': 4139} 在这个示例jack , snape是键, snape是值。 值也可以是字符串和字典列表,就像你的情况一样,你的代码可以修改为: dictionary = {"Virtualization Type" : "hvm", "Tags" : [{"Value" : "Test", "Key" : "Name"}] } #Runs in the python interpreter with n ...
-
在elasticsearch中为hinglish创建自定义词干分析器(Creating custom stemmer for hinglish in elasticsearch)[2023-02-23]
最后,经过几次打嗝,我终于能够创建hinglish-stemmer的实现了。 它可以在以下链接中找到: - https://github.com/Mangu-Singh-Rajpurohit/hinglish-stemmer/ Finally, after several hiccups, I was finally able to create implementation of hinglish-stemmer. It's available at following link :- https://g ... -
在solr中添加自定义字段类型(Add a custom field type in solr)[2023-07-20]
您可以通过将它们添加到元素中的schema.xml来在solr中定义新的自定义字段: ... 要概述所支持的类型(用于在Solr中定义... ,然后用于定义field元素),请查看以下链接: https : //cwiki.apache. ... -
自定义QueryResponseWriter在solr 7.3.0中不起作用(custom QueryResponseWriter is not working in solr 7.3.0)[2023-12-07]
在solr-core 7.3中, NameList::getVal(index)将返回BasicResultContext ,它将内容DocList实例。 以下是我更改的代码,供将来参考 public void write(Writer writer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) throws IOException { LOGGER.info("Here we are...."); ... -
您好我已按照以下步骤启用我的自定义词典。 创建自定义词典: 1.在主目录中创建名为custom.txt的文件 touch ~/custom.txt 添加您要添加到词典中的单词,其中每个单词位于单独的行中,然后运行以下命令 sudo aspell --lang=en create master /usr/lib/aspell/custom.rws < ~/custom.txt 要完成将其添加到字典,请通过运行以下命令将其更改为字典目录: cd /usr/lib/aspell/ 然后编辑以下文件: en.mu ...
-
在Mac上的plist文件中的MS Word 2011自定义词典项目格式(MS Word 2011 Custom dictionary item format in plist file on Mac)[2022-10-15]
关闭。 找到所有字段。 不能在这里透露,对不起。 Closed. All the fields are found. Cannot disclose it here, sorry. -
要点在索引器声明中的new关键字中。 这不会覆盖基类索引器,并且每次从基类或接口访问索引器时(如您的示例中的IDictionary ) - 将调用基类的索引器。 此外,您无法重写基类索引器,因为它在Dictionary
类定义中未标记为virtual 在方法声明中考虑关于新修饰符的这篇文章 尝试在这里使用组合,而不是继承。 如果您确定,您需要针对IDictionary 添加自定义词典(Adding custom dictionary)[2024-02-03]
最简单的方法是重新培训情绪模型。 获取情绪训练数据并手动修改您关注的单词的标签。 在另一个斯坦福情绪页面上有非常基本的培训说明。 然后根据需要使用这个训练有素的模型! 一个非常肮脏但可能更快的解决方案是在事后修改从标准模型中获得的树。 例如,您可以在分析的树中搜索感兴趣的单词并手动修改其情感标签。 然后应用一些启发式方法,以便将这个修改传播到树上,并可能改变整个句子的情绪。 The cleanest way to do this would be to retrain the sentiment model ...您可以使用DocTransformer实现此目的。 只需从类继承并在transform方法中实现所需的逻辑: public void transform(SolrDocument doc, int docId) { String oldValue = doc.getFieldValue(fieldName); doc.put(newField,getNewValue(oldValue)); } You can achieve this using a DocTransformer . Ju ...