美文网首页
同义语义表的构造、索引和检索,思路共享

同义语义表的构造、索引和检索,思路共享

作者: JiangbinZheng | 来源:发表于2017-02-21 23:43 被阅读0次

今天又忙活了一天,做了个同义词分析检索的一个搜索引擎的功能,简单分享下:

1.准备分词字典(之前已有)文件设为dic.txt设为和近义词表(现做或者从网络收集整理)文件设为tong.txt

(dic.txt每行的格式如下:计算机,23,n  其中23等数字为唯一值,记为关键词编码)

(tong.txt每行的格式如下:4,电脑,计算机  其中4等数字为唯一值,记为同义词编码)

2.分词和同义词表之间建立索引表,具体操作如下:(该步骤在一个项目中执行一次就可以长期重复使用)

2.1逐行遍历dic.txt,截取关键词,并用根据关键词逐行遍历tong.txt文件进行字符串匹配

2.2 以dic.txt中的某行 “计算机,23,n”为例,一旦计算机匹配到tong.txt 中"4,电脑,计算机"行中的“计算机”字符串,则停止tong.txt的遍历,并利用fseek函数回到tong.txt的遍历起点

2.3此时建立两者的索引联系,以“*”(符号任取)趣味标识符隔开。该例则为23*4(统一将关键词编码放在标识符之前,同义词编码放在之后);

2.4建立索引的目的,是为了降低内存,加快搜索速度。

3.建立好索引后,就是如何应用了。应用的方法如下(前提是已经做好了中文分词的关键词分词工作)

3.1获取分词关键词在分词词典dic.txt中的关键词编码值(在分词过程中就可以将该编码值保留着)。如此时关键词为计算机,对应编码值23;

3.2根据关键词编码值,遍历索引值(纯数字字符遍历很快的,轻量级)。如 “计算机”的编码23匹配到索引表中的“23*”,则锁定该行,获取*后的4,作为查阅关键词的索引值

3.3利用索引值迅速查阅其余同义词。如果设定行号和同义词编码一一对应,则可以比较方便的用以下方法检索:

3.3.1利用file(tong.txt)将该文件转换为数组读入某以为一维数组,记做a;

3.3.2直接获取a[4]就可以得到“4,电脑,计算机”这一完整的字符串

3.3.3经过字符串的截取和转换,最终能完整得到 “电脑”和“计算机”这两个关键词;

同义语义表的构造、索引和检索,思路共享

成果图如上。by Bink Cheng

相关文章

  • 同义语义表的构造、索引和检索,思路共享

    今天又忙活了一天,做了个同义词分析检索的一个搜索引擎的功能,简单分享下: 1.准备分词字典(之前已有)文件设为di...

  • [SQL] 聚集索引,非聚集索引

    SQL Server提供了两种索引:聚集索引和非聚集索引。其中聚集索引表示表中存储的数据按照索引的顺序存储,检索...

  • HTML5多了点啥?

    更加语义化的标签 搜索引擎检索,为什么会检索标题,不会检索‘简介’? 这是因为结构的不同,但是结构每个人的clas...

  • MySql 独立表空间和共享表空间

    独立表空间和共享表空间 共享表空间: 数据库的所有表数据,索引文件全部放在一个文件中,默认共享表空间的文件路径在d...

  • Oracle_索引/同义词

    索引/同义词 1.定义 是一种独立于表的模式对象,可以存储在表不同的磁盘或表空间中。索引被破坏不会对表产生影响。表...

  • MySQL

    数据库对象:表、视图(view)、序列(sequence)、索引(index)、同义词(synonym) DDLd...

  • 索引

    索引优点: 大大加快数据检索速度。唯一索引:保证表中每行数据的唯一性加速表与表之间连接在分组和排序子句中显著减少分...

  • MySql优化

    MySqlInnoDB引擎支持事务 非主键索引都会存主键索引值非主键索引检索:先走非主键索引,再走主键索引 表即主...

  • lucene实例与源码解析

    lucene是什么? 全文检索的引擎工具包,实现了全文检索的类库。全文检索,将查询的目标对象提取出来构造一套索引,...

  • 《现代汉语》词汇篇 语境第三

    目录 语义场和语境 一、什么是语义场 二、同义义场 三、反义义场 四、词义和语境的关系 语义场和语境 一、什么是语...

网友评论

      本文标题:同义语义表的构造、索引和检索,思路共享

      本文链接:https://www.haomeiwen.com/subject/eerpwttx.html