製品を分類するための機械学習アルゴリズムに関するアイデア


7

製品のリスト(領収書に記載されている製品名など)や、製品を購入した販売者などの変数が含まれています。

私はそれらの多くを手動でカテゴリの固定グループに分類しています(たとえば、アルコール飲料、野菜、肉など)。

データはいつものようにノイズが多いです。この場合、スキャンされた領収書から取得されるため特にノイズが多く、あまり良くないスキャンのOCRは通常非常にノイズが多くなります。

上記の2つの変数を使用して、新しいデータを分類するアルゴリズムを試してみたい。

ここには、いくつかの主要なバリエーションのソースがあります。

  • OCRは、製品(例:鶏肉)が多くの異なるが比較的類似したスペル(例:チキン、ヒッケン、チキンなど)で見つかることを意味します。
  • 同じ商品でも、商品を販売した販売者によって名前が異なる場合があります。この場合、名前はマーチャント間で類似しているか完全に異なっている可能性がありますが、すべてのマーチャント内では類似しています。
  • 同じ商品は、同じ商人の中で非常に異なる名前を持つことができます(たとえば、レシートの名前がブランド名であるブランド製品と一般名、ソフトドリンクとコカコーラ)。

(文字列間の距離(主に上記のバリエーションの最初の主要なソースに取り組む)など)を使用して、いくつかの(素朴な)分類器を試してみましたが、結果に満足していません。

そこで、私はこの問題に取り組む方法についてのアイデアを求めるために、ここに手を差し伸べたかったのです。多くの人がこの種の問題で私がしたよりも(数時間)「解決」したか、少なくともずっと長く働いたと思いますので、ここでのガイダンスを本当に感謝します。

ちなみに、私は主にRを使用しているので、Rベースのソリューションをいただければ幸いです。


これはかなり不正確かもしれませんが、これを読んでいるときに頭に浮かんだフレーズは「構造化トピックモデル」です。このメソッドがまったく関連している場合、stmと呼ばれるRパッケージがあります。
lmo

回答:


2

1つずつ問題に対処する:

1)OCR:このタスクで十分に機能するアルゴリズムが多数あるため、これはおそらく最も簡単な問題です。参考として、最もよく知られている手書きの数字データセットであるMNISTでは、いくつかのアルゴリズムが99.5%を超える精度を達成しています(最先端の畳み込みニューラルネットワーク)。また、問題に対するすぐに使える多くの解決策を見つけることができます。データが英語の場合は、より高度なツールが提供されるため、非常に役立ちます。スキャンにノイズが多い場合は、まずノイズを除去してみてください。

2)この問題には、いくつかの前処理を行う必要があります。最初に、できれば単語の袋、つまり「コーパス」内のすべての一意の単語のリストを作成することをお勧めします。これらすべての単語が正しいことを確認し、文字列の距離比較(ハミング距離など)を実行して、1〜2文字のタイプミスを修正します。私が行うもう1つのことは、バッグ内の各用語の出現を計算し、最も頻度の低いものを削除することです(たとえば、コーパスでN回未満の頻度で出現する用語はタイプミスであるか、または用語の最も頻度の低いM%を削除します)。これにより、データセットのノイズが大幅に削減されます。

3)この問題を解決するには、何らかの意味論的ラベル付けを実行する必要があります。オントロジーに精通している場合、その階層構造はここで非常に役立ちます。「コカ・コーラ」は飲料の一種である「ソフトドリンク」などのルールを作成できます。

私はRの経験はありませんが、上記のすべてを非常に簡単に実行するためのツールを見つけることができると確信しています。


0

エンティティ間の類似性を定義する必要があるようです。

類似性のソースがたくさんあります。名前の距離(編集距離)とグループのメンバーシップについて言及しました。グループごとの類似性を、多くのグループおよび多くの類似性タイプに拡張できることに注意してください。グループは、同じレシピに属したり、同じ商人が販売したり、同じカテゴリに属したりすることができます。類似タイプは、同じグループに属している飛行機、グループのサイズと逆比の重みなどです。すべての使用において推移性を使用できます。たとえば、同じ製品で使用されるという事実を使用して、異なる名前の類似製品を見つけることができます(たとえば、スパイスX`とスパイスX``は両方とも鶏肉で使用されます)。

すぐにあなたは多くの類似関係を持ち、それらをどのように組み合わせるか疑問に思うでしょう。ここでは、すでに行ったラベル付けに役立ちます。これらを関連製品のポジティブペアとして捉えます。(ポジティブペアではない)異なる製品のセットをネガティブペアとして生成します。陽性が概念であり、類似性がペアであるデータセットを構築します。これで、教師あり学習アルゴリズムを使用して、類似性を単一の予測に結合するモデルを取得できます。このモデルを使用して、新しいペア間の関連付けを予測できます。おまけとして、データセットに対するモデルのパフォーマンス(精度、精度など)を評価し、より確実にすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.