从域中提取单词

时间:2011-09-26 18:34:56

标签: php tagging linguistics

我有一堆域名,我想爆炸成文字。我从wordlist.sourceforge.net下载了wordlist,并开始编写暴力类型的脚本,通过字典列表运行每个域。

问题在于我无法让它产生足够好的效果。我做的简单脚本看起来像这样:

foreach($domains as $dom) {
    $orig_dom = $dom;
    foreach($words as $w) {
        $pos = stristr($dom,$w);
        if($pos) {
            $wd[$orig_dom][] = $w;
        }
    }
}

$ words是字典数组,域只是一个域名数组。

结果如下:

[aheadsoftware] => Array
    (
        [0] => ahead
        [1] => head
        [2] => heads
        [3] => soft
        [4] => software
        [5] => ware

从技术上讲它是有效的,但是我不知道如何编码的方法是让脚本理解如果你匹配'前进',你就不再有'头'或'头'了。它也应该理解选择'软件'而不是'软'和'软件'。是的,我知道,语言计算的世界是纯粹的痛苦;)

1 个答案:

答案 0 :(得分:0)

一个天真的解决方案可能是每次匹配时,在将结果添加到结果中之前执行另一个stristr查找并查看您尝试输入结果的单词是否包含在任何内容中已经在那里的话。如果是,请不要将其添加。

例如,如果域包含'heads'并且您的字典首先列出'head',则这不起作用。您可能宁愿在结果中添加“头部”而不是“头部”。

您可以通过检查哪个更长,来绕过该限制。如果结果中包含的单词较长,请不要添加新单词。如果新单词较长,请删除结果中已有的单词并添加新单词。