2

特定のパラメーターの一致または欠落の重みを指定できるパターン認識アルゴリズムはありますか? たとえば、3 つの文字列があるとします。

str1 = Samsung 11.6" 64GB Slate PC Tablet with Wi-Fi - Black  
str2 = Samsung Series 7 XE700T1A-A05US 11.6-Inch Slate (64 GB, Win 7 Pro)
str3 = Samsung Series 7 XE700T1A-A03US 11.6-Inch Slate (128 GB SSD, Win 7 HP)

従来の文字列距離では str2 が str3 に近いと言われますが、GB が等しいため、str2 を str1 に一致させたいと考えています。実際には、さまざまな重みを持つ多数のパラメーターを処理できるものを望んでいます。

正しい方向への指針をいただければ幸いです。

4

2 に答える 2

6
  1. 「Samsung」、「Inch」、「Wi-Fi」などの名前付きエンティティの辞書を作成します。
  2. 特徴を抽出するための一連のルールを作成します。たとえば{Number}{Space}?"GB"、ギガバイト{TradeMark}{Space}"Series"{Space}{Number}、商標、シリーズなどです。
  3. 特徴ベクトルを作成し、既知の属性を対応する値に設定し、不明な属性を "NA" (利用できません) などに設定します。
  4. 文字列ではなく、アイテム (特徴ベクトルとして表される)間の距離を測定します。

注: 辞書とルールを簡単に操作するには、GATEフレームワークの使用を検討してください。2 つのベクトル間の距離を測定するには、余弦距離を使用できます。

于 2012-08-15T20:36:07.740 に答える
2

おそらくやりたいことは、文字列自体を操作するのではなく、文字列から関連情報を抽出して重み付けするパーサーを開発することです。

これは、必要な情報を抽出する一連の正規表現 (これらは「機能」として知られています。たとえば、GB) を生成するか、より複雑な解析または NLP 手法を使用することで構成できます。次に、重み関数を自分で開発するか、ある種のクラスタリング(類似性のため) または分類子(物事をカテゴリに分類するため) を使用します。

簡単な例では、次のような正規表現を生成するGB [0-9]+だけで比較を行うことができます。

于 2012-08-15T20:22:00.747 に答える