搜索引擎脚本-正则表达式、多个文件、行号


search engine script - regex, multiple files, line numbers

我正在寻找一个搜索引擎脚本,或者可以:的搜索引擎

  1. 搜索大量的大型文本文件,特别是数百个全文小说
  2. 使用正则表达式返回单词和可能的变体
  3. 给出所有匹配项在文件中的位置,例如行号或字数
  4. 最好使用javascript或php,因为它们是我唯一擅长的语言,我可能不得不处理结果。但我相信我能咬紧牙关,学会任何需要的语言的语法
  5. 根据字典过滤单词的搜索结果数组以查找专有名词(这可能不包括搜索引擎)

上下文和细节(有点长,只是有点重要):

我有一个朋友正在做一篇博士论文,寻找19世纪小说中表亲婚姻的主题(想想莎士比亚戏剧)。筛选需要很长时间,尽管没有一种算法是完美的,但它应该会大大缩小范围。我在搜索"婚姻"这个词和它的每一个变体,"表亲"这个词,和它的每个变体,并查看它们的相对接近程度。当然,我在搜索数以百计的全文小说。

我很难找到它们的相对距离。除此之外,我可能需要搜索所有的名字,以确保有一个主角,如果没有主角的话。这意味着我正在尝试确定
A.一般名称
B.主角。-应该是最常用的名称之一

至于一般的名字,我不认为有一个完整的19世纪名字数据库,所以我只过滤专有名词。从那时起,我就遇到了标点符号后面的通用词和专有名词的难题。我想我最好的办法是通过一本综合词典过滤掉所有这些单词,留下专有名词。名字可能是最常用的,但看看我是否能过滤掉任何其他专有名词,比如地方。诚然,这远非完美,但它会大大缩小范围。

因此,这意味着要比较两个庞大的单词列表。有很多方法可以做到这一点,但如果它的格式很容易用我熟悉的语言处理,那将是理想的。我的最佳猜测是将大写单词的数组与字典单词的数组进行比较,找出差异。如果是php或javascript,我就很好了。至于任何其他语言,如果这是一个相对简单的操作,我相信我能很好地理解语法。

也许这有点太过了,但我们也很感激对整个算法和过程的任何建议。

非常感谢您的时间和帮助!通过节省无数小时的时间,你将为一篇巨大的博士论文做出贡献,所以我的朋友也会非常感激。

干杯!

Sphider是一个开源搜索引擎,您可以下载它,它具有您需要的大部分需求http://www.sphider.eu/demo.php