![画像](https://habrastorage.org/files/706/20f/9cb/70620f9cb0494938b0f5d55b5a682432.jpg)
イントロ
InterSystems iKnowテクノロジーを使用して、iKnow Reviews Analyzer(iKRA)と呼ばれるレビュー評価システムを作成しました。 ここでプロジェクトのプロトタイプについて読むことができます 。 iKRAは、テキストによるユーザーレビューを分析し、研究対象を自動的に数値的に評価します。 これらの機能は、オンライン販売サイト、テーマフォーラム、メディアコンテンツのコレクションなどで非常に役立ちます。 言い換えれば、コミュニティが物事を議論しているところはどこでも。
何が決定を下すのですか?
iKnowレビューアナライザーは、家電製品のオンライン販売の分野であれ、流行国の旅行ホテルの予約であれ、あらゆる分野を分析します。 結果を取得するには、次の重要な手順を実行する必要があります。
- 関心のある分野でフィードバックを収集します。
- 辞書の作成-計算用の単語のデータベース。
- データをロードおよび分析するための領域を作成します。
- 計算のためにモデルを実行します。
- コーヒーを飲む/待つ;
- 結果を参照してください。
使用例
さて、実際にはどのように見えますか?例として、スマートフォンでレビューを分析します。 5つのメーカーを選択します。
- りんご
- HTC
- LG
- サムスン
- ソニー
私たちはそれぞれ、スマートフォンの2つのモデルに興味があるとします。 選択したモデルごとに、50件のレビュー(合計500件)をアップロードします。コメントはYandex.Marketから取得されます。
![画像](https://habrastorage.org/files/58c/0e1/6e9/58c0e16e990a49bc8d97b6c08e7d6db2.jpg)
各レビューは個別のファイルに配置され、便宜上、次のファイルの場所スキームを使用します(図1)。
![画像](https://habrastorage.org/files/ce5/cf7/ace/ce5cf7ace594441c85bec0ac2e5d238f.jpg)
図1.ファイルの場所の階層
カッコ内は、レビューを書くときにユーザーが付けたスマートフォンの総合評価です。 メタデータに記録され、後で計算アルゴリズムを最適化するために使用されます。 元のレビューはこちらです。
分析するには、非構造化データのリポジトリであるiKnowドメインを作成する必要があります。 この問題についてはここで詳しく説明しているため、これについては詳しく説明しません。
ドメインが作成され、レビューで満たされると、そのコンテンツの分析に進みます。 スマートフォンを選択するとき、次のパラメーターは私にとって重要です。
- 性能
- 通信品質;
- 快適さ/利便性。
さらにナレーションを簡単にするために、次の概念を紹介します。
- category-評価されるパラメーター。
- 機能的(f)マーカー-推定パラメーター/カテゴリーを特徴付ける用語。
- 機能辞書-多くのf-Markers。
- 感情的(e)マーカー-記述された主題に対する著者の態度を反映する単語。
- 感情的な語彙-多くの電子マーカー。
選択された特性に基づいて、機能辞書をコンパイルします。指定されたカテゴリごとにf-Markers-単語の定義を選択します。 たとえば、カテゴリ「パフォーマンス」の場合、「速度」、「プロセッサ」、「メモリ」、「速度」、「コア」などになります。 すべてのf-Markersは特別なファイルに記録されます 。 図2は、パフォーマンス/パフォーマンスカテゴリの例を示しています。
![画像](https://habrastorage.org/files/f2a/086/499/f2a086499e004e16b35c5afc0fff0055.jpg)
図2. fマーカー
次に、感情的な辞書を作成し、適切なeマーカーで埋めます。 リスト全体をここに示すことはできませんが、わかりやすくするために、「良い」、「便利」、「いいね」、「問題」、「欠如」の一部をリストします。 電子マーカーは、テキスト内の文にポジティブまたはネガティブな色を付けます。 各e-Markerには数値評価があります。 簡単にするために、正の場合は+1、負の場合は-1を使用します。 すべてのe-Markersも特別なファイルに記録されます 。 図3は、e-Markersの例を示しています。
![画像](https://habrastorage.org/files/921/c58/502/921c585023ab4ee19c61a8b03dcca6eb.jpg)
図3. eマーカー
辞書の準備ができたら、評価を計算できます。 これを行うには、[ドメイン]タブで目的のドメインを選択し、[計算の実行]をクリックします(図4)。
![画像](https://habrastorage.org/files/cfc/f66/500/cfcf66500eaa465ea34f7f4da23633a1.jpg)
図4.見積もりの計算
結果を確認するには、ikra.Dictionary.MarksUnitクラスのテーブルを開きます。これには、各スマートフォンモデルの評価が含まれています。または、ikra.Dictionary.MarksReviewクラスを参照して、個々のレビューの評価が含まれています。 管理ポータルに情報が表示されます。 [SQL]セクションを選択し、目的のテーブルを参照します。 図5は、ikra.Dictionary.MarksUnitクラスのテーブルを表示する例を示しています。
![画像](https://habrastorage.org/files/722/6a5/6ef/7226a56efc494ab0a3a9a9f3e895d86d.jpg)
![画像](https://habrastorage.org/files/5e6/cfb/01a/5e6cfb01aca94d5b88a2d6f1bb8812cd.jpg)
図5. ikra.Dictionary.MarksUnitテーブルの表示
DeepSeeの助けを借りて、得られたものを見てみましょう。 カテゴリごとに推定値を計算した結果を使用するキューブを作成し、調査中の各装置のグラフを作成しました(図6)。
![画像](https://habrastorage.org/files/f13/819/672/f13819672c51449da3e46c62d40f1685.jpg)
図6.カテゴリー別の成績表
分析されたデータのうち、最初の場所は次のように配布されました。
- パフォーマンス-HTC ONE;
- 通話品質-HTC ONE;
- 快適さ/利便性-サムスンギャラクシーS5 SM-G900F。
しかし、別のカテゴリを追加する必要がある場合はどうでしょうか?
以前は、個々のカテゴリを評価するには、対応するクラスプロパティを手動で登録する必要がありました。 これにより、新しいサブジェクトエリア、カテゴリ、およびその数が変更された場合、そのような変更のたびにコードを編集する必要が生じ、明らかに最も時間のかかる生産的な使用法に不便が生じました。 この状況から抜け出すために、2つのソリューションを検討しました。
- 多数のクラスプロパティの予約。
- データベースを使用する。
最初のオプションを使用すると、データベースの構造に煩わされることなく、刻々と変化するカテゴリの数を忘れることができます。 しかし、そのような量のプロパティを保存するのは不便であり、さらに、評価されるパラメーターの数が多くならないことを保証する人はいません。 この道を放棄しました。
2番目のオプションは、カテゴリの数が不定の問題を解決し、クラスの各インスタンスを格納するために固定量のメモリを必要としません。 データベースに基づいて、システムは、任意の数のカテゴリを持つサブジェクト領域の計算に簡単に適応します。
2番目のオプションの利点を考えると、iKRAシステムに実装されるのは彼です。
新しいカテゴリを追加する
「そして、スマートフォンの別のパラメーターであるカメラを評価する必要があることに気付きました! (ああ、ポケモンを捕まえたら、喜んで)
新しいカテゴリを追加することは難しくありません。このため、機能辞書の構成を変更し、新しい名前を入力します-カメラ(図7)。
![画像](https://habrastorage.org/files/aa6/76f/645/aa676f64570a4dea85c6a29bf7b4ceca.jpg)
図7.カメラカテゴリの追加
対応するタブにf-Markersを追加して、カテゴリを定義します(図2)。
[ドメイン]タブで、目的のドメインを選択して計算を開始します(図4)。
終了を待って、表示に進みます(図8)。
![画像](https://habrastorage.org/files/b84/1b7/9ca/b841b79cac8343f0ba1eb14cc2833be9.jpg)
図8.カテゴリーごとの更新されたグレーディングスケジュール
やった! 新しいカテゴリを簡単に導入して評価しました。 現在、図は次のとおりです。
- カメラ-iPhone 4S
- パフォーマンス-HTC ONE;
- 通話品質-HTC ONE;
- 快適さ/利便性-サムスンギャラクシーS5 SM-G900F。
続く
これで、コードを書き直すためのコストをかけずに、レビューに従って製品カテゴリの推定値を取得できます。 このために、辞書を設定して計算を実行する必要があります。 課題は依然としてフィードバックをデータベースにアップロードするプロセスですが、この問題の解決については次の記事で説明します。
GitHub