2016-07-03 3 views
5

私はテレビ番組やその他のメディア(ゲーム、映画など)用のスクレーパーを書いていますが、すべてのソースが特定のショーのために同じ方法でフォーマットされているわけではありません。たとえば、1つのソースはダッシュで字幕を表し、他のソースではセミコロンを表すことがあります。私は現在、Levenshtein距離を使用して、スクラップしたデータとTVショーファイル名から抽出したデータを比較していますが、アルゴリズムが文章よりも短い短い文字列用に設計されているかどうかは疑問でした。このニーズに適したアルゴリズムはありますか?テレビ番組のタイトルを比較するのに最適な文字列距離アルゴリズムは何ですか?

答えて

3

比較/距離測定の前に、タイトルを正規化(標準化)する必要があります。

  • 基本的な書式(例えばUTF16エンコーディング、ノー大手/末尾のスペースとタブ)
  • アルファベットのルール(例えばAとÄを交換してください)(
  • 頭字語の拡張例:

    正規化は、のようなものを含める必要がありますNY - > New York)

  • ロケーション名の規則(都市名にスペースは入れないで、ダッシュ)
  • 大文字の規則(大文字の後に続く各文字は大文字にする必要があります)
  • シンボルの削除(例: !、?)
  • 番号の変換(「三から百」から「300」)
  • ローマ数字の変換(例えば「ルイ16世」は「ルイ16」へ)
  • 非アメリカ英語アメリカ英語(例えば「色」あなたは単語のペア間のレーベンシュタイン距離を使用することができます

代わりに「対」)の「対」

  • 略語ルール(例えば、「株式会社」の代わりに「株式会社」の「色」)、へ(文全体では使用しないでください)、いくつかの単語(例:「The」)が表現の1つから欠落している可能性があるため、スライディングウィンドウを実装します。

  • 関連する問題