Beeline Data School、休暇は終わりました





こんにちは、Habr!



お正月に多くの皆さんが素晴らしい休息をとれることを願っています。 しかし、休日は終わりました。 機械学習とデータ分析に戻りましょう。 1月25日から、 Beeline Data Schoolの 3番目のセット開始します。



前回の投稿では、テキスト分析のクラスで教えていることをより詳細に説明することを約束しました。 この投稿では、この約束を果たします。



ところで、既にテキストの分析と処理に積極的に取り組んでいて、自分で試してみたい場合は、Kaggle =)でThe Allen AI Science Challengeで遊んで、同時にテキストの分析と応答システムの構築のためのハッカソンであるDeepHackに参加することをお勧めします。



ワープロに関するクラスでさらに教えていることについて。



自動ワードプロセッシングは、エントリのしきい値が高い領域です。興味深いビジネスオファーを作成したり、たとえばSemEvalDialogなどのテキスト分析コンテストに参加するには、機械学習方法を理解し、ワードプロセッシング用の特別なライブラリを使用できる必要があります。ルーチン操作をゼロからプログラミングし、言語学の基本を理解します。



ワードプロセッシングのすべてのタスクといくつかのクラス内でそれらを解決する複雑さについて話すことは不可能であるため、トークン化、形態素解析、キーワードとフレーズの強調表示、テキスト間の類似性の決定といった最も基本的なタスクに集中しました。



トークン化(英語の単語のトークン化から)は、テキストを文と単語に分割するプロセスです。 トークン化の問題は、一見すると誤って些細なように見えるかもしれません。



実際、単語またはトークン-テキストの要素-の概念はあいまいです。たとえば、正式には、ニューヨーク市の名前は2つの別々の単語で構成されます。 もちろん、合理的な処理を行うには、これら2つの単語を1つのトークンとみなし、個別に処理する必要はありません。



さらに、疑問符や感嘆符とは対照的に、ピリオドは常に文の終わりではありません。 ドットは、略語または数字入力の一部である場合があります。



理論を掘り下げず、実用的な観点からトークン化を扱う必要があり、最も魅力的なタスクではない場合、ルールに従ってテキストを単語に分割し、バイナリ分類アルゴリズムを使用して文に分割する組み合わせトークナイザーを使用するのが最も合理的です:各ポイントは、分類子によってポジティブクラス(ポイントは文の終わり)またはネガティブ(ポイントは文の終わりではない)として分類されます。 同様に、分類子は感嘆符と疑問符の両方を指します。



幸いなことに、学生はこれらのアルゴリズムをゼロから実装する必要はありませんでした。これらはすべて、Pythonテキスト処理ライブラリであるNatural Language Toolkitに実装されていました。



形態素解析(英語の品詞タグ付け)は、各単語の形態的特性を決定することです:単語が名詞である場合、その単語がどの品詞に属しているか、そして、それがどれだけ立っているか(また、ロシア語の場合、性別と格付けは何ですか)言語)、単語が動詞である場合、その時間、外見、人、声などは何ですか?



形態学的同音異義のために、単語の品詞を決定することはそれほど簡単ではありません。異なる単語は、一致する形式を持つことができます。つまり、同音異義語です。 たとえば、「彼は単純な兵士に驚いた」という文には、単純と兵士という2つの同音異義語があります。



NLTKは、コンテキストに応じて品詞を決定できるスマートな形態素解析ツールと、各単語の最も頻繁な分析を返す単純な形態素辞書を実装しています。



キーワードとフレーズを強調表示するタスクの形式化は不十分です。通常、キーワードとフレーズは、テキストのテーマの詳細を反映する単語とフレーズとして理解されます。



定義があいまいであるため、キーワードやフレーズを強調表示するためのアプローチは数百ではないにしても数十あります。 それらのいくつかを検討します。









「不思議の国のアリス」によって構築されたキーワードとフレーズクラウド



tf – idfの使用は、キーワードとフレーズの抽出に限定されません。 tf – idfのもう1つの用途は、テキスト間の類似性を計算することです。 コレクションの各テキストが含まれる単語のベクトルtf – idfで表される場合、2つのテキスト間の類似性は、多次元単語空間内の2つのベクトル間のコサインとして定義できます。 2つのテキスト間のこのコサインの類似性は、クラスター分析の距離として使用できます。



ディープラーニングワードプロセッシングアプローチ:word2vecデータ構造:



上記で説明した古典的なワードプロセッシング手法に加えて、Googleが開発し、ディープラーニングアプローチを使用したword2vecデータ構造が最近人気を集めています。 これを使用すると、脳を少し面白くすることができます。つまり、線形空間のベクトルを使用して(言語に関係なく)単語を識別することができます。 さて、その後、減算、加算、後者をスカラー的に乗算します。 この構造は内部から機能するのはかなり困難ですが、実際に使用するには、トレーニングパラメータの設定方法を学習する必要があります。 私たちはクラスでこれに時間を捧げます。 ブラックボックスの観点から見ると、この構造は非常に単純です。前処理をせずに、多数のテキストを単に「フィード」するだけです。 出力では、テキストから各単語のベクトル(特定の次元)を取得します。



読者はすぐに質問があります:今、それをどうするか? 以下は、指をクリックするだけで解決できる最も単純なタスクのリストです。



これは、このword2vecデータ構造を使用して解決されるタスクの完全なリストではありません。 すべてのアプリケーションとチューニングの微妙さの詳細については、クラスで説明します。



これは、自然言語処理のような複雑で多面的な科学の紹介に過ぎません。 クラスでは、ロシア語の場合(ロシア語のテキスト)を含む、適用可能なテキストの自動処理の多くのタスクも考慮します。



これは特に当てはまります 今日、市場の多くのベンダーは、英語のエンクロージャでテストされたソリューションを提供しており、単一の「購入して置く」ソリューションはありません。すべてのタスクで製品をゼロから開発する必要があります。



テキスト分析の使用例:



今日の自然言語分析のアプリケーションの中で、最も有名な例の1つは、特定のオブジェクトへの参照を監視し、メディアおよびソーシャルサービスでそれらに対する態度を分析することです。 ネットワーク。 ソーシャルネットワークはもちろん、ニュース、プレスリリース、ブログなど、インターネットが毎日大量のテキスト情報を生成することは周知の事実です。 したがって、処理は言うまでもなく、このような情報を収集して保存するというタスクでさえ、別のビジネスです。 特に価値があるのは、ワードプロセッシングの方法、特に特定のオブジェクトまたは会社に関連するテキストへの参照の監視です。



確かに、多くの人がソーシャルネットワーク上で有名なブランドについて、またはさらに良いことにタグを付けて何かを書くと、答えを受け取る可能性が高いことに気付いています。 もちろん、答え自体はまだ人々によって書かれていますが(自然言語分析はこれで大きな進歩を遂げていますが)、スマートアルゴリズムはアピールのテキストの分類(ネガティブ、ニュートラル、ポジティブ)を行います。 これは古典的な感情分析タスクであり、教室で詳細に分析しますが、非常に多くの落とし穴があります。



それにもかかわらず、私たちは本質的にこの問題のみを解決します-一部の企業はこれで良いビジネスをしています。 たとえば、企業はソーシャルネットワーク上のメッセージを分析し、オピニオンリーダーを見つけます(これは、グラフ理論の分野で非常に人気のあるタスクであり、講義でも検討します)。



メッセージングアプリケーションでボット、インタラクティブロボットを構築するタスクも人気を集めています。 このようなボットは、顧客の質問に答えることができ、顧客の助けを借りて、顧客が利用できる会社のサービスを管理し、新しい製品やサービスを購入できます。 たとえば、インスタントメッセンジャーのボットの詳細については、 こちらをご覧ください。



お気づきかもしれませんが、今日、自然言語処理の分析には多くの問題があります。少なくとも1つを解決すれば、ビジネス全体を構築できます。



テキストの分析に興味のあるすべての人には、 Courserで同じ名前のコースを取ることをお勧めします-私たちの意見では、自動ワードプロセッシングで最も有用なコースの1つです。 さらに練習して問題を解決したい場合は、 Beeline Data Schoolへようこそ。3番目のセットは1月25日に始まります。



All Articles