[搜索]一种分词的实现(2)

上文提到

http://blog.csdn.net/zhanghaiyang9999/article/details/41864169

能否顺序打印单词。

顺序打印单词代码如下:

char *dict[]={"a","is","book","boo","this"};
bool isword(char* wd)
{
	for(int i=0;i<sizeof(dict)/sizeof(dict[0]);i++)
	{
		if(strcmp(dict[i],wd) == 0)
			return true;
	}
	return false;
}

bool splitter2(const char* src)
{
	char word[100]={0};
	char tempsrc[100]={0};
	int i=0;
	int nlen = strlen(src);
	if(nlen == 0)
		return true;
	for(i=nlen - 1;i >=0;i--)
	{
		strncpy(word,src +  i,nlen - i);
		if(isword(word))
		{
			memset(tempsrc,0,sizeof(tempsrc));
			strncpy(tempsrc,src,i);
			if(splitter2(tempsrc))
			{
				printf("word=%s\n",word);
				return true;
			}
		}

	}
	if(i < 0)
		return false;
	return true;
}



时间: 2024-11-10 19:02:23

[搜索]一种分词的实现(2)的相关文章

[搜索]一种分词方法的实现

加上有一句话,thisisabook,要将之分成合适的单词,假设有一个字典,这个字典包含单词. 我刚看到这个需求,第一反应是用搜索中的分词方式,最大匹配法,后来经过高人指点,说不用,只需要遇到正确的单词就分出来,然后又想到了回溯法,再次经高人指点,回溯也不需要,只需要递归即可.下面是简单的实现代码,供参考: char *dict[]={"a","is","book","boo","this"}; bool

Apache Lucene 几种分词系统

1. StopAnalyzer StopAnalyzer能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能. 2. StandardAnalyzer StandardAnalyzer根据空格和符号来完成分词,还可以完成数字.字母.E-mail地址.IP地址以及中文字符的分析处理,还可以支持过滤词表,用来代替StopAnalyzer能够实现的过滤功能. 3. SimpleAnalyzer SimpleAnalyzer具备基本西文字符词汇分析的分词器,处理词汇单元时,以非字母字符作为分割符号.

和我一起打造个简单搜索之IK分词以及拼音分词

elasticsearch 官方默认的分词插件,对中文分词效果不理想,它是把中文词语分成了一个一个的汉字.所以我们引入 es 插件 es-ik.同时为了提升用户体验,引入 es-pinyin 插件.本文介绍这两个 es 插件的安装. 环境 本文以及后续 es 系列文章都基于 5.5.3 这个版本的 elasticsearch ,这个版本比较稳定,可以用于生产环境. ik 分词器 和 pinyin 分词器在 github 仓库可以找到,注意版本与 elasticsearch 的版本需要对应,本文使

图的遍历(深度优先与广度优先搜索两种方案)

1.图的遍历--深度优先搜索 import java.util.Scanner ; public class Map{ static int n ; static int m ; static int[] book ; static int[][] e ; public static void mapDfs(int cur){ //深度优先搜索思想核心: System.out.print(cur + " ") ; for (int i=1;i<=n;i++) { if (e[cu

[搜索]一种改进的召回率准确率公式计算方式

 在信息检索系统中,召回率和准确率的定义为: 召回率:(Recall Ratio,简称R)是衡量信息检索系统在实施某一检索作业时检出相关文献能力的一种测度指标,其计算方法为:Recall=检出的相关文献量/检索系统中的相关文献总量. 准确率:(Precision Ratio,简称P)是衡量系统在实施某一检索作业时检索精准度的一个测度指标,其计算方法为: Precision=检出的相关文献量/检出的文献总量. 比如一个系统中有100篇文档,对于某一次查询,有10篇相关的文档,在这次检索中,共检

[大数据]-Elasticsearch5.3.1 IK分词,同义词/联想搜索设置

--题外话:最近发现了一些问题,一些高搜索量的东西相当一部分没有价值.发现大部分是一些问题的错误日志.而我是个比较爱贴图的.搜索引擎的检索会将我们的博文文本分词.所以图片内容一般是检索不到的,也就是说同样的问题最好是帖错误代码,日志,虽然图片很直观,但是并不利与传播.希望大家能够优化一部分博文的内容,这样有价值的东西传播量可能会更高. 本文主要是记录Elasticsearch5.3.1 IK分词,同义词/联想搜索设置,本来是要写fscrawler的多种格式(html,pdf,word...)数据

使用 Elasticsearch ik分词实现同义词搜索(转)

1.首先需要安装好Elasticsearch 和elasticsearch-analysis-ik分词器 2.配置ik同义词 Elasticsearch 自带一个名为 synonym 的同义词 filter.为了能让 IK 和 synonym 同时工作,我们需要定义新的 analyzer,用 IK 做 tokenizer,synonym 做 filter.听上去很复杂,实际上要做的只是加一段配置. 打开 /config/elasticsearch.yml 文件,加入以下配置: [html] vi

Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词

http://fuxiaopang.gitbooks.io/learnelasticsearch/content/  (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的类型存在于一个索引中.你也可以通过类比传统的关系数据库得到一些大致的相似之处: 关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)一个Elasticsearch集群可以包含多个索引(数据库),也就是说其

一种拼音分词器的JAVA实现

搜索中的分词器有很多种,包括中文.英文,一般的网站都会有站内搜索功能,也就是对用户输入的内容进行处理,本文对中文的全拼实现了一 个分词器,原理很简单,就是模式匹配.根据中文全拼的特点,即声母和韵母配对,首先列举出所有的声母,再分别列举出所有声母对应的韵母 集,分词的过程就是遍历匹配的过程.具体代码如下: import java.util.ArrayList; public class SpellTool { static String result = "";// 最后要显示的结果 p