如何把两个字符串进行ik分词,得出匹配度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把两个字符串进行ik分词,得出匹配度相关的知识,希望对你有一定的参考价值。
参考技术A public void onCreateA(SQLiteDatabase db)System.out.println("On create works");
try
db.execSQL("DROP TABLE IF EXISTS actuator;");
db.execSQL("CREATE TABLE IF NOT EXISTS actuator ("+
"ACTUATOR_ID INT(11) NOT NULL,"+
"ACTUATOR_HW_ID int(11) DEFAULT NULL,"+
"DEVICE_NAME TEXT(45) DEFAULT NULL,"+
"DEVICE_TYPE TEXT(45) DEFAULT NULL,"+
"DEVICE_SUB_TYPE TEXT(45) DEFAULT NULL,"+
"LOCATION_ID INT(11) DEFAULT NULL,"+
"STATUES_VALUE REAL DEFAULT NULL,"+
"MAX_STATUES_VALUE REAL DEFAULT NULL,"+
"MIN_STATUES_VALUE REAL DEFAULT NULL,"+
"PRIMARY KEY (`ACTUATOR_ID`))");
System.out.println("table created now values will be added");
System.out.print("DONE!");
catch (SQLException e)
System.out.println("table is not created");
try
db.execSQL("INSERT INTO actuator (ACTUATOR_ID, ACTUATOR_HW_ID, DEVICE_NAME, DEVICE_TYPE, DEVICE_SUB_TYPE, LOCATION_ID, STATUES_VALUE, MAX_STATUES_VALUE, MIN_STATUES_VALUE) " +
"VALUES (1, 2, 'Heat Sensor FX615','Heat Sensor', 'Optic Heat Sensor', 4, 6, 7, 8) " );
System.out.println("values are added");
catch (Exception e)
e.printStackTrace();
System.out.println("values are not added");
try
db.execSQL("SELECT * FROM actuator");
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("not selected");
Windows使用Ik分词器插件
IK分词器插件
什么是Ik分词器?
分词:即把一段中文或者别的划分成一个个关键字,我们在搜索的的时候回把自己的信息进行分词,回把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词。
Ik分词器两种分词模式:
-
ik_max_word
: 会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌",会穷尽各种可能的组合; -
ik_smart
: 会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"。
安装
下载安装 https://github.com/medcl/elasticsearch-analysis-ik/releases ,解压到 elasticsearch下的plugin目录,重启加载即可,可以看到Ik分词器被加载了。
可以通过 elasticsearch-plugin 命令查看加载进来的插件:
在Kibana中使用分词器
GET _analyze
{
"analyzer": "ik_smart",
"text": ["我是中国人"]
}
GET _analyze
{
"analyzer": "ik_max_word",
"text": ["我是中国人"]
}
查看不同的分词效果,其中 ik_smart 为最少分词效果
ik_max_word 为最细粒度划分!穷尽词库的可能!
问题:
我们输入 “我很喜欢敲代码“,发现 ”敲代码“ 三个字被拆开了。
类似这种需要的次,我们需要自己加入到我们的分词字典当中!
保存完成之后重启 Es和Kibana 访问即可!
以上是关于如何把两个字符串进行ik分词,得出匹配度的主要内容,如果未能解决你的问题,请参考以下文章