9

{brand: canon, model number: d1000, lens: 4MP zoom: 2X, display type: LCD}のような構造化データに「Canon D1000 4MP Camera 2X Zoom LCD」のような構造化されていない製品タイトルを解析することを検討しています。製品タイトル(構造化されていない)を構造化データに解析する方法は?

これまでのところ私が持っている:

  1. ストップワードを削除し、クリーンアップ(-;:/のような文字を削除)
  2. は言葉に長い文字列をトークン化。

どのような技法/ライブラリ/方法/アルゴリズムであれ、非常に高く評価されます。

編集:製品タイトルのヒューリスティックはありません。売り手は何でもをタイトルとして入力できます。たとえば、「Canon D1000」はタイトルにすぎません。また、この演習はカメラデータセットだけでなく、タイトルはどの製品でも可能です。

+0

トレーニングデータはありますか? 1000製品の製品仕様を教えてください。 – Jirka

+0

私は多くのトレーニングデータを持っています。私はこれを1億アイテム分実行する必要がありますが、今はカメラ関連の約10,000個の製品でプロトタイプを構築しようとしています。 – stealthspy

+1

私は同じ問題を解決しようとしています。私は〜50Kの製品を持っている、それらのすべてが構造化されておらず、トレーニングデータもありません。私の最初のステップは、ブランド、モデルなどの属性が定義された製品を意味するトレーニング用のデータを見つけることです。製品は電子機器(電話、ノートパソコン、カメラ)に属します。属性を持つ製品を見つけるためのアドバイス – dzeno

答えて

6

トレーニングデータがたくさんあるので(ペアのタイトル+構造化JSON仕様が多いと思われます)、Named Entity Recognizerをトレーニングしようとします。

たとえば、Stanford NERをトレーニングすることができます。これを行う方法については、FAQ entryを参照してください。明らかに、製品のタイトルは文章とは異なりますので、パラメータを覚える必要があります。

トレーニングデータを準備する必要がありますが、それほど難しいものではありません。あなたはwordとanswerという2つの列が必要ですが、タグ列を追加することもできます(しかし標準的なPOSタグの精度は、非典型的なテキストなので正確ではありません)。私は単純に関連するJSON仕様から答えの列の値を抽出しますが、あいまいさがいくつかありますが、それは無視できるほど稀ですと思います。

+0

ありがとう!私はこれを調べます。 – stealthspy

1

タイトル(amazon製品など)のみを取得している場合は、これを文章として表示し、順次ラベル付けを検討することができます。属性が与えられたか不明であるかどうかに応じて、

は(属性等のブランド、モデルのようなもの)、いくつかの問題がここにあります

1:これは与えられたものであれば、問題は「簡単」で、あなたどのような「シーケンシャルラベリング」方法でもうまくいく。

2:そうでない場合は、構文解析(依存解析、完全解析)と同じ方法で(属性、値)のペアを抽出する必要があります。これは、CRF(条件付きランダムフィールド)とマルコフモデル(HMM、MEMMなど) 。しかし、あらかじめ属性についての知識がほとんどないので、これが実現可能かどうかは疑問です。もう1つの可能性は、多くの外部情報(レビューと製品の説明のいずれか)を与えられた場合、それらの属性を把握してからタイトルからペアを抽出することが可能です。 Ex。レビューで「ブランド」と「キャノン」の相関関係が多く見つかった後、カメラでタイトルから「キャノン」という言葉が見つかると、これは「ブランド」の価値であることがわかります。

+0

私は、製品のタイトルにヒューリスティックがないことを言及する必要があると思います。この場合、シーケンシャルラベリングはどのように機能しますか?売り手が "D1000 4MPカメラキヤノン2倍LCDズーム" – stealthspy

+2

を入力するのを止めるものはありません。これははるかに難しい問題です(ケース2を参照)。レビエントレビュー/説明は役立ちます。それ以外の場合は、カメラ製品でのみ作業している(データが疎ではない)場合、おそらく監督されていない逐次ラベリングが役立ちますが、「キャノン」と「ニコン」が同じ属性であることはわかりますが、それでも名前を付けるのは難しいです( "ブランド"はどこから来たのですか?) – dragonxlwang

0

このようなフリーテキストを解析するためにニューラルネットで成功すればよいかもしれませんが、多くの単語には必要のないコンテキストが必要なため、単純なテキスト解析では失敗します。

しかし、達成したい精度のレベルによっては、部分的な解決策(人間の後処理が必要)を考え出すことができます。または、入力に最小限の構造を強制します(商品名は常に特定のパターンに従わなければなりません)。この方法では、残りの入力を理解するのに十分な状況情報を提供する製品をよりよく識別できるので、はるかに優れたスタートがあります。

確かに100%解決策はありません(ニューラルネットでさえも)。

2

私は100%成功の方法がないことに同意します。可能なアプローチは、カスタムのNER(名前付きエンティティ認識)を手作業で注釈付きのデータでトレーニングすることです。ラベルは、BRAND/MODEL/TYPEです。 モデル名/ブランドをフィルタリングする一般的な方法は、辞書を使用することです。ブランド/モデルは通常、非辞書の単語です。

3

この種の市販の分析装置を開発したので、この問題の簡単な解決法はないことがわかります。しかし、特にドメインがカメラ/エレクトロニクスに限定されている場合は、複数のショートカットがあります。

まず、より多くのサイトを参照する必要があります。多くの人がページに注釈を付けたプロダクトブランドを持っています(適切なhtmlアノテーション、太字、名前の冒頭のすべての帽子)。一部のサイトには、検索目的でブランドセレクタが付いたページ全体があります。この方法で、ブランド名のかなり良いスターター辞書を作成することができます。製品ライン名やモデルでも同じです。英数字モデルは、正規表現で大量に抽出され、かなり素早くフィルタリングされます。

他にも多くのトリックがありますが、私は簡単にしようとします。ここでのアドバイスだけです。手動作業とアルゴリズムの間には常にトレードオフがあります。両方のアプローチを混在させることができますし、両方が投資利益率曲線を持ち、人々が忘れる傾向があることを常に心に留めておいてください。製品ブランドとモデルを抽出するための自動アルゴリズムを作成しないことが目標である場合、この問題のプランには時間予算が限られています。あなたは現実的には1日に1000のブランドの辞書を作成することができます。電子製品の既知のデータソースの適切なパフォーマンス(私たちはここでAmazonを話しているわけではありませんか?)4000のブランドの辞書があなたの仕事に必要なすべてかもしれません。エンティティレコグナイザと呼ばれる最新のニューラルネットワークに数週間投​​資する前に、数学をやりましょう。

関連する問題