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

时间:2012-01-16 06:33:55

标签: php javascript regex full-text-search

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

  1. 搜索大量的大型文本文件,特别是数百个全文 小说。
  2. 使用正则表达式返回单词和可能的变体。
  3. 在文件中提供所有匹配项的位置,例如行号或字数。
  4. 理想情况下使用javascript或php,因为它们是我擅长的唯一语言,我可能不得不操纵结果。但我确信我可以咬紧牙关,学习所需语言的语法。
  5. 根据字典过滤搜索结果字词数组以查找专有名词(可能不包括搜索引擎)
  6. 背景和细节(有点长而且有点重要):

    我有一位朋友正在做博士论文,寻找19世纪小说中表兄弟婚姻的主题(想想莎士比亚戏剧)。筛选将需要永远,虽然没有算法是完美的,但它应该大大缩小范围。我正在寻找“婚姻”这个词以及“堂兄”这个词和每个变体的每个变体,并检查它们的相对接近程度。当然,我正在搜索数百部全文小说。

    找到他们相对接近是我很难找到的功能。除此之外,如果不是主角,我可能需要搜索所有名称以确保主角。意思是我试图确定 A.一般的名字。
    B.主角。 - 应该是最常用的名字之一。

    至于一般的名字,我不知道有一个19世纪名字的综合数据库,所以我留下了过滤专有名词。从那里开始,我就有了通用词的难题以及标点符号后的专有名词。我认为我最好的选择是通过一本综合词典过滤所有这些词语,留下专有名词。名称可能是最常用的,但看看我是否可以过滤掉任何其他专有名词,例如地方。当然,远非完美,但它会显着缩小范围。

    因此,这意味着比较两个巨大的单词列表。有很多方法可以做到这一点,但如果它的格式易于使用我所知道的语言,那将是理想的。我最好的猜测是将大写单词数组与一系列字典单词进行比较并找出差异。如果它是在PHP,或javascript我很好。至于任何其他语言,如果它是一个相对简单的操作,我相信我可以很好地弄清楚语法。

    也许这有点太多的背景,但是对整个算法和过程的任何建议也值得赞赏。

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

    干杯!

1 个答案:

答案 0 :(得分:0)

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