我正在考虑实施一个小型搜索引擎。但是我不确定搜索引擎是如何进行分词的。
我的想法是这样的:
- 构建包含热门词汇的词典
- 对于html文档中的每个句子,按空格分隔单词
- 进行线性搜索以检查某些单词是否在字典中。如果是,则这些是该页面的关键字。
- 让关键字为数据库表。将网址存储在所有相应的关键字表
中
醇>
所以我们假设有一句话“我邀请她在市中心附近的一家当地餐馆吃饭。”
不包括停止词的词是:{邀请,晚餐,当地,餐馆,市中心}
字典只包含{invite,dinner,restaurant}字样
以下是问题:
- 如何处理字典外的单词? (例如市中心)
- 如何处理过去时,复数形式等?我应该将所有带有特定前缀的单词一起存储吗(例如“邀请”将包含“邀请,邀请,邀请......”)那么像“后退”和“后退”这样的词呢?
- 如何处理“本地餐厅”等查询?简单地结合“本地”和“餐馆”的结果似乎不是一个好的解决方案,而将“本地餐馆”存储为另一个关键字表可能会导致更多的重复,并给分词带来困难。
- 还有比我的想法更好的方法吗?
醇>
欢迎任何评论。谢谢!