6

分析したいドメイン名のリストがあるとします。ドメイン名がハイフンでつながれていない限り、ドメインで使用されているキーワードを「抽出」する特に簡単な方法はないと思います。それでも、DomainTools.com、Estibot.com などのサイトで行われているのを目にします。例:

ilikecheese.com becomes "i like cheese"
sanfranciscohotels.com becomes "san francisco hotels"
...

これを効率的かつ効果的に達成するための提案はありますか?

編集:これをPHPで書きたいと思います。

4

7 に答える 7

6

OK、この SO question用に書いたスクリプトを実行しましたが、ログの確率を使用してアンダーフローを回避し、コーパスとして複数のファイルを読み取るように変更しました。

私のコーパスのために、プロジェクト Gutenberg から大量のファイルをダウンロードしました。これには実際の方法はありません。etext00、etext01、および etext02 からすべての英語ファイルを取得しただけです。

以下は結果です。各組み合わせの上位 3 つを保存しました。

エキスパート交換: 97 の可能性
 - 専門家交換 -23.71
 - 性転換専門家 -31.46
 - エキスパート交換 -33.86

ペニスランド: 11の可能性
 - ペン島 -20.54
 - ペニスランド -22.64
 -ペンはランド-25.06

スペインを選ぶ: 28の可能性
 - スペインを選択 -21.17
 - 痛みを選ぶ -23.06
 - -29.41 でスパを選択

キッズエクスプレス: 15の可能性
 - キッズエクスプレス -23.56
 - キッドセックスプレス -32.65
 - キッズエクスプレス -34.98

子供服: 34の可能性
 - 子供たちは誓う -19.85
 - 子供服 -25.26
 - 子供たちの誓い-32.70

ディクソンウェブ: 8つの可能性
 - ディクソン ウェブ -27.09
 -ディック息子ウェブ-30.51
 -ウェブ上のディックス-33.63
于 2009-08-29T20:19:27.063 に答える
3

この SO questionを確認してください。

于 2009-08-27T07:03:34.323 に答える
3

ドメインから一致する可能性が高いものを取得するヒューリスティックを開発する必要があります。私がそれを行う方法は、最初にテキストの大きなコーパスを見つけることです。たとえば、ウィキペディアをダウンロードできます。

次にコーパスを取り、隣接する 2 つの単語をすべて結合します。たとえば、あなたの文が次の場合:

quick brown fox jumps over the lazy dog

リストを作成します。

quickbrown
brownfox
foxjumps
jumpsover
overthe
thelazy
lazydog

これらのそれぞれのカウントは 1 です。コーパスを解析すると、2 つの単語ごとの頻度のペアを追跡できます。さらに、ペアごとに、元の 2 つの単語が何であったかを並べ替える必要があります。

このリストを頻度順に並べ替えてから、これらの単語に基づいてドメイン内で一致するものを見つけようとします。

最後に、登録されていない上位 2 つの語句のドメイン チェックを行います。

DomainTool のようなサイトは、最高ランクの単語のリストを取得していると思います。次に、これらの単語を最初に解析しようとします。目的によっては、MTurk を使用して作業を行うことを検討することもできます。異なる人は同じ単語を異なる方法で解析し、単語がどれほど一般的であるかに比例して解析しない場合があります.

于 2009-08-27T07:26:40.440 に答える
2

choosespain.com kidsexpress.com childrenswear.com dicksonweb.com

辞書を使って URL を解析しようとする場合は、楽しんでください (そして良い弁護士)。

Web サイトで空白で区切られた同じ文字を見つけることができれば、より良い結果が得られるかもしれません。

その他の可能性: SSL 証明書からデータを抽出します。トップ レベルのドメイン ネーム サーバーを照会します。ドメイン ネーム サーバー (TLD) にアクセスします。または、「whois」ツールまたはサービスのいずれかを使用します (単に「whois」をグーグルで検索します)。

于 2009-08-22T07:45:34.503 に答える
1
function getwords( $string ) {
    if( strpos($string,"xn--") !== false ) {
        return false;
    }
    $string = trim( str_replace( '-', '', $string ) );
    $pspell = pspell_new( 'en' );
    $check = array();
    $words = array();
    for( $j = 0; $j < ( strlen( $string ) - 5 ); $j++ ) {
        for( $i = 4; $i < strlen( $string ); $i++ ) {
            if( pspell_check( $pspell, substr( $string, $j, $i ) ) ) {
                $check[$j]++;
                $words[] = substr( $string, $j, $i );
            }
        }
    }
    $words = array_unique( $words );
    if( count( $check ) > 0 ) {
        return $words;
    }
    return false;
}

print_r( getwords( 'ilikecheesehotels' ) );

Array
(
    [0] => like
    [1] => cheese
    [2] => hotel
    [3] => hotels
)

pspell の簡単な開始として。結果を比較して、末尾に「s」がない単語の語幹を取得したかどうかを確認し、それらをマージすることをお勧めします。

于 2011-12-09T01:49:45.137 に答える
1

有効な単語のリストがある場合は、ドメイン文字列をループして、バックトラッキング アルゴリズムを使用して毎回有効な単語を切り取ることを試みることができます。すべての単語を使い切ることができたら、終了です。これの時間の複雑さは最適ではないことに注意してください:)

于 2009-08-22T07:39:13.270 に答える
0

ドメインエントリに対して辞書エンジンを使用して有効な単語を見つけ、結果に対してその辞書エンジンを実行して、結果が有効な単語であることを確認する必要があります。

于 2009-08-22T07:18:12.360 に答える