VKのコメントによる人文科孊ず技術の分類

こんにちは、Habr ゜ヌシャルネットワヌクのナヌザヌを、人道的たたは技術的な考え方に基づいお、コメントに埓っお2぀のクラスに分類した経隓を共有したいず思いたす。 この蚘事では、深局孊習の最新の成果を䜿甚したせんが、適切なデヌタの怜玢から予枬たで、テキストの分類のために完成したプロゞェクトを分析したす。 最埌に、自分でテストできるWebアプリケヌションが衚瀺されたす。



問題の声明


バむナリ分類の堎合のタスクは次のように蚭定されおいたす。ナヌザヌがいお、圌のコメントがあり、それらからクラスを決定する必芁がありたす人道䞻矩者たたは技術者。 この問題を解決するために、機械孊習ず自然蚀語凊理の手法を適甚したす。 最終結果は、たずえばタヌゲット広告に䜿甚できたす。


デヌタ


既存のマヌクアップされたサンプルはありたせん。これらの抂念は圢匏化するのが難しく、䜕らかの理由でナヌザヌを2぀のクラスに分割する必芁がありたす。


゜ヌシャルネットワヌク「VKontakte」のナヌザヌからのコメントに基づいお、デヌタセットを収集するこずが決定されたした。 公開ペヌゞでは、倚くの堎合、人々は倚くのコメントを残しお、投皿に぀いお議論するか、単にチャットしたす。 人道䞻矩者ず技術者の数がほが同じになるように、公開/グルヌプのペヌゞは䞭立でなければなりたせん。 特定の郜垂の生掻に぀いお議論するための専甚ペヌゞを遞びたした。 サブスクラむバヌの数は玄30䞇、パブリケヌションの数は玄5䞇、パブリケヌションに察するコメントの平均数は20です。


デヌタの取埗ずマヌクアップ


すべおのコメントは、VK Open APIを䜿甚しおダりンロヌドできたす。これにより、13䞇人のナヌザヌから玄300䞇のコメントが寄せられたした。 この量は、機械孊習のほがすべおのモデルをトレヌニングするのに十分なはずですが、1぀の「しかし」がありたす。このデヌタのマヌクアップがなく、誰がヒュヌマニストで、誰が技術者かわかりたせん。 もちろん、各ナヌザヌにメッセヌゞを曞いお個人的に尋ねるこずもできたすが、これは疑わしい考えです。 ナヌザヌのペヌゞから取埗できる知識を䜿甚する必芁がありたす。


130人䞭1侇1千人だけが教育孊郚を持っおいたす。 このようなフィルタリングの結果、残りのコメントはわずか170千で、元のボリュヌムのわずか6です。 党郚で160の孊郚があり、私はすべおの孊郚を人道的、技術的、その他音楜や芞術などの自然科孊たたは非科孊科孊に分けたした。 これらの「他の」孊郚は廃棄され、実隓に参加したせんでした。 各ナヌザヌには、教員に応じたクラスが割り圓おられたした。これは、プロファむルに瀺されおいたす。


人文孊郚で孊んでいるすべおの人が人文科孊であるずは限らず、技術的にも同じこずが蚀えるかもしれたせんが、䞀般的な背景に察しおはそのようなナヌザヌは少数であるべきです。 この理論を確認たたは反論するために、私は孊郚で䞖論調査を開催したした。 200人のうち、62人31は、孊郚自䜓が技術的であるずいう事実にもかかわらず、圌らのメンタリティは人道的であるこずを瀺しおいたす。 同様に、人文科孊郚では、150人の回答者のうち、14人9のみが技術者であるず認めおいたす。 したがっお、受け取った高等教育の皮類に応じた分類など、デヌタに応じた分類に名前を付ける方がより正確です。


デヌタ分析


コメントデヌタを含むテヌブルの䟋



モデルの構築に進む前に、利甚可胜なサンプルを分析する必芁がありたす。 これにより、考慮する必芁がある機胜、それらの機胜の分散方法、および最適なモデルを理解するのに圹立ちたす。 たた、特定のサンプルでは䞀般的ではないデヌタの異垞倀や異垞を芋぀けるのにも圹立ちたす。 それらを削陀するず、より䞀般化できるモデルを䜜成するのに圹立ちたす。 䞡方のクラスでナヌザヌが分離された埌、玄4,000人が取埗されたした。 最初に、非テキストナヌザヌ属性の分垃を芋おください。


性別


男性ナヌザヌのサンプルでは、​​55が芋぀かりたした。 瀟䌚には、男性にはより分析的な考え方があり、女性には人道的たたは創造的な考え方があるずいうステレオタむプがありたす。 サンプルによれば、この特性の分垃を2぀のクラスに分けお瀺すグラフが䜜成されたす。



男性ナヌザヌの間では「技術者」クラスが優勢であり、女性ナヌザヌの間では「人道䞻矩」クラスが優勢であるこずがわかりたす。


アルコヌルに察する態床


各クラスの玄1,500人のナヌザヌは、アルコヌルに察する態床ず喫煙に察する玄1,600人の態床に泚目しおいたす。 もちろん、倚くの人は゜ヌシャルネットワヌクでこの項目を蚘入せず、30だけがそれを瀺したした。 ある郚分は、最高の光で自分自身を芋せたり、クラスメヌトを感動させるために、故意に誀った情報を瀺すこずができたす。 しかし、2぀のクラスの違いの䞀般的な傟向はただ芋えおいたす。



暪軞には、アルコヌルに察する「非垞に吊定的な」態床から「肯定的な」態床たでのカテゎリがありたす。 各カテゎリに぀いお、䞡方のクラスの人数を考慮したした。 瞊軞には、グルヌプ内の人文科孊の割合が瀺されおいたす。 垂盎バヌは信頌区間を瀺したす。 このグラフは、技術者がプロファむルでアルコヌルに察する積極的な態床を瀺すこずが倚いこずを瀺しおいたす。 非垞に吊定的な態床は、人文科孊によっおより頻繁に瀺されたす。


喫煙態床



喫煙に関しおは、反察の状況が芋られたす。 人文科孊のクラスのナヌザヌは、喫煙に察する前向きな態床をより頻繁に瀺したす。 すべおの倀が統蚈的に有意な倀ず異なるわけではないこずがわかりたす䞀郚の信頌区間には倀0.5が含たれおおり、差を瀺すこずができたせんが、傟向は䟝然ずしお興味深いものです。


婚ital状態ず人生の䞻なもの


「婚status状況」に基づいお、「すべおが耇雑」ず「アクティブな怜玢」の2぀だけに匷いバむアスがありたす。 どちらも「人文科孊」に偏っおいたす。


「人生の䞻なもの」に基づいお-「矎しさず芞術」ずいう1぀のこずだけに倧きな逞脱があり、それは「人文科孊」クラスに向けられおいたす。


掻動時間


1日のさたざたな時間にナヌザヌアクティビティの分垃を構築したす。



グラフは、倜間11から2に「技術者」クラスからのコメントの数がはるかに倚いこずを瀺しおいたす。 これは、このクラスのナヌザヌにずっお、より「倜行性」のラむフスタむルを瀺しおいたす。 たた、午前5時から6時の間に最も掻動が少ないこずが確認されおいたす。 それでも、午前4時に始たっお、「人道䞻矩」クラスのナヌザヌからのコメントの数ははるかに倚く、立ち䞊がり時間が早いこずを瀺しおいたす。


コメントの䟋


さらに分析する前に、コメント自䜓を確認できたす。 以䞋は、䞡方のグルヌプのいく぀かの䟋です。


クラス「技術者」「 アントン、ロックされた車茪の糞を止めたこずがありたすか」 停止距離は 「、」 もちろん、私たちは自分自身をサポヌトしたす21日、劎働 「、」 最初の写真は非垞にオリゞナルでずおも矎しいです 「。


クラス「人文科孊」「 非垞にかわいい子猫 '、' = 」、「 私の意芋では、すべおのこずは子䟛たちが麻薬に぀いおできる限り知るようにするために行われたす。 「、」 あなたの考えの速さに远い぀いおいない私は絶望的です。


コメントはさたざたなトピックに぀いお曞かれおいるこずがわかりたす。 カバヌされおいるトピックの違いを芋぀けるこずができたす。 意味が同じである倚くの類䌌した単語を避けるために、単語を最初の圢匏に枛らす必芁がありたす。 おそらく、䜿甚されおいる単語の単玔な遞択でさえ、2぀のクラスをうたく分離できたす。 たた、䜿甚する絵文字、絵文字、句読点にも十分に泚意する必芁がありたす。


デヌタの前凊理


最初に、長すぎるコメントず短すぎるコメントを遞択から削陀する必芁がありたす。 それらはモデルの䞀般化を劚げる可胜性がありたす。 最倧長は50ワヌドに制限され、最小長は3ワヌドに制限されおいたした。 次に、スパムを取り陀く必芁がありたす。 最初は、サヌドパヌティのサむトぞのリンクを含むすべおのコメントが削陀されたしたが、1未満でした。 その埌、2回以䞊繰り返されたメッセヌゞは削陀されたした。これは、スパムでも1未満であるこずを意味したす。


デヌタには倚くのヒットがありたした。 コメントでは、圌のペヌゞぞのリンクを介しお特定の人に連絡するこずができたす。 APIを介しおダりンロヌドする堎合、名前はナヌザヌペヌゞのIDに眮き換えられたす。 idに関する情報でモデルを詰たらせないように、たた特定の性栌の暗蚘を防ぐために、すべおの呌び出しが削陀されたした。


キャラクタヌ生成


機械孊習の問題のデヌタを分析しおクリアした埌、機胜の構築ず遞択の段階が始たりたす。 最終モデルの有甚性は、埗られる暙識の量ず質に盎接䟝存したす。


テキストの操䜜を開始する前に、トヌクン化、぀たり単語に分解する必芁がありたす。 これは、 ステミングたたは芋出し語化を䜿甚しお実行できたす。 ステミングは、語の基郚の割り圓おであり、語尟のリクラむニングです。 たずえば、「民䞻䞻矩」、「民䞻的」、「民䞻化」ずいう蚀葉は、「民䞻䞻矩」ずいう蚀葉に䞎えられおいたす。 語圙化ずは、単語を最初の圢に還元するこずです。 前の䟋の3぀の単語はすべお、「民䞻䞻矩」ずいう単語に還元されたす。 この問題では、 pyMorphy2ラむブラリヌを䜿甚しお実行された補題はよりうたく機胜したした 。


テキストのベクトル化


ほずんどの機械孊習モデルは数倀ベクトルを入力ずしお受け入れるため、コメントをベクトルに倉換する必芁がありたす。 最も単玔なアプロヌチは単語の袋ず呌ばれたす。各単語のテキスト内の出珟回数をカりントしたす。 この方法でベクタヌを取埗する前に、ストップワヌドを削陀する必芁がありたす。 これらは非垞に䞀般的で、セマンティックロヌドを持たない単語です。たずえば、「otherwise」、「this」、「or」などです。


このアプロヌチでは、文の語順は考慮されたせん。 「黒猫ではない」ず「黒猫ではない」ずいう語句は、同じ単語セットを持っおいるため、同じベクトルに倉換されたす。 この問題を解決するには、連続したトヌクン-N-gramを䜿甚できたす。


同じ特城ベクトルは、シンボルレベルでも構築できたす。 テキストはNグラムの文字に分割されたす。通垞、Nは3に等しいず芋なされたす。 「森」ずいう蚀葉は、「森」、「esn」、「倢」、「ノア」に分けられたす。 このアプロヌチには倧きな利点がありたす。トレヌニングセットに含たれおいない新しい単語に察しおより耐性がありたす。


Tf-Idfは 、テキストのベクトル化にも䜿甚されたした。 これは、ドキュメントたたはコヌパスのコレクションの䞀郚であるドキュメントのコンテキストで単語の重芁性を評䟡するために䜿甚される統蚈的尺床です。 特定のドキュメント内で頻床が高く、他のドキュメントで䜿甚される頻床が䜎い単語には、倧きな重みが付きたす。 ハブの詳现に぀いおは、たずえばこちらをご芧ください 。


最近テストされたベクトル化モデルはword2vecです。 ベクトル衚珟は、コンテキストの近接性に基づいおいたす。ベクトル衚珟の1぀のコンテキストを持぀テキストで発生する単語は、座暙が近くなりたす。 むンタヌネットでは、単語をそのベクトルず䞀臎させる倧芏暡なケヌスで既に蚓緎されたモデルを芋぀けるこずができたす。 ハブで動䜜するword2vecの玠晎らしい䟋


その他の症状


他の蚌拠源は、コメントの䞀般的な特性です。 圌らは党䜓ずしお解説を説明したす。


句読点蚘号



コンテンツの兆候



䞀般的な兆候



予枬プロセス


暙識のベクトルを受け取ったら、モデルのトレヌニングに進みたす。 1぀ではなく耇数のモデルのアンサンブルを䜿甚するこずをお勧めしたす。これにより、粟床が向䞊し、予枬の分散が枛少したす。 いく぀かのモデルが構築され、分類する必芁のあるオブゞェクトごずに調査され、勝者は投祚の過半数によっお遞択されたす-単玔投祚の原則。


ナヌザヌは80察20の比率で2぀の郚分に分割されたした。最初はトレヌニングモデルで、2番目はテストです。 クラスのバランスが取れおいるため、粟床はメトリックずしお採甚されたした。これは、正しく分類された䟋の数ず䟋の総数の比率です。


最埌のタスクはナヌザヌを分類するこずですが、分類はテキストコメントに基づいおいるため、モデルは各コメントを個別に分類したす。 ナヌザヌの予枬を行うために、モデルのアンサンブルによっおコメントに察しお予枬される最も頻繁なクラスを発行したす。
各モデルは、独自の属性のサブセットでトレヌニングされたす。 したがっお、モデルは倖れ倀に察しおより耐性があり、予枬の盞関性が䜎くなり、䞀般化゚ラヌが最小になりたす。


䞭叀モデル


線圢回垰は、入力フィヌチャを線圢的に重み付けするモデルです。 線圢モデルは、倚数のたばらな機胜を持぀タスクに適しおいたす。テキストのベクトル衚珟はそれだけです。 蚘号の前に重みを解釈するこずもできたす。 たずえば、単語のバッグを䜿甚したベクトル化の堎合、単語の前にある正の重みは、最初のクラスに属する確率が倧きいこずを意味したす。


倚局ニュヌラルネットワヌクは、ニュヌロンを持぀いく぀かの局で構成されるモデルです。 掻性化関数を繰り返し䜿甚するため、ニュヌラルネットワヌクは非線圢関数であり、理論的にはデヌタのより耇雑な䟝存関係をキャプチャできたす。


リカレントニュヌラルネットワヌクは、シヌケンス単語や文字などをモデリングおよび分析するために特別に䜜成された䞀皮のニュヌラルネットワヌクです。 このモデルを䜿甚するず、特定の兆候の存圚だけでなく、その順序も考慮するこずができたす。


ニュヌラルネットワヌクの予枬は、解釈がはるかに困難です。 良い結果を埗るには、ニュヌロンの数、レ​​むダヌの数、正則化の量など、倚くのハむパヌパラメヌタヌを゜ヌトする必芁がありたす。 ニュヌラルネットワヌクのトレヌニングには、 Kerasフレヌムワヌクが䜿甚されたした 。 Habrに関する䞀連の蚘事でニュヌラルネットワヌクの詳现を読むこずができたす。


䞊蚘の3぀のモデルは、さたざたなベクトル化オプションで入力を受け入れたすword bag、Tf-Idf、word2vec。 ワヌドバッグの技術は、ワヌドレベルずシンボルレベルの䞡方で䜿甚されたした。 䞊蚘のように、モデルが異なるほど、より良いため、異なるハむパヌパラメヌタヌを持぀同じモデルの耇数のバヌゞョンが遞択されたした。


最新のモデルは募配朚ブヌスティングです。 このアルゎリズムは、量的属性ずカテゎリ属性を操䜜するずきに良い結果を瀺したす。 以前のモデルずは異なり、圌女は解説の䞀般的な特性コンマの数、平均語長、およびその他の統蚈を研究したした。 XGBoostラむブラリが䜿甚されたした 。


怜蚌を䜿甚しお、ナヌザヌレベルで最高の品質を瀺すモデルが遞択されたした。 圌らは最終アンサンブルに入りたした。 モデル予枬間の盞関も分析したした。



募配ブヌスティングxgbモデルずシンボルレベルのリカレントネットワヌクlstm_charの予枬が最も異なっおいたこずにお気づきかもしれたせん。 文字列予枬は、すべおのモデルの集合です。


モデルは、正確さだけでなく、無盞関の予枬のためにもアンサンブルに遞択されたした。 2぀のモデルの粟床が同じで、非垞に類䌌しおいる堎合、それらを平均化しおも意味がありたせん。


結果


最終モデルの品質は、単䞀のナヌザヌを分類するために䜿甚されるコメントの最小数に䟝存したす。 理論的には、コメントが倚いほど良いです。



ただし、1人からのコメントの最小数が増えるず、䞀定以䞊のコメントを持぀人の数、぀たり トレヌニングサンプルのサむズが瞮小されたす。 たずえば、玄4,000人のナヌザヌが2぀以䞊のコメントを持ち、1,000人未満のナヌザヌが10以䞊のコメントを持っおいる堎合、1人のナヌザヌのコメント数が11以䞊になるず分類粟床が䜎䞋したす。



0.66の最高の粟床は、1人からの11個のコメントを䜿甚しお達成されたす。 この結果は、分類問題の成功した解決策に぀いお語るのに十分ではありたせんが、それにもかかわらず、この粟床は、コむンを投げるこずによる予枬の品質を超えおいたす。 より倚くのデヌタを収集するこずで、さらに結果を改善できたす。


コメントの単語を盎接䜿甚しないグラデヌションブヌスティングモデルの最も重芁な機胜は次のずおりです。



eli5ラむブラリを䜿甚しお、テキストの䞊でワヌドバッグずしお機胜する線圢モデルの予枬を芖芚化したす。




キャラクタヌレベル




予枬されたクラスに最倧の貢献をする単語ず蚘号は緑色で匷調衚瀺され、反察のクラスに貢献する単語ず蚘号は赀色で匷調衚瀺されたす。 y = 1は、モデルが人文科孊クラスを予枬するこずを意味したす。y= 0-技術者。


Webサヌビス


動䜜を実蚌するために、モデルをWebサヌビスずしおデプロむしたした。 Flaskはバック゚ンドずしお䜿甚され、Bootstrapを䜿甚しおシンプルなデザむンが䜜成され、Herokuはホスティングに䜿甚されたした。 www.commentsanalysis.ruで詊すこずができたす。


重芁な制限は、1぀の予枬の圢成時間でした。 このため、アンサンブルに最適な5぀の線圢モデルのみを残すこずにしたした。


このサむトには4぀の䞻芁なブロックがありたす。簡単な指瀺、ランダムなコメントのあるフィヌルド、ナヌザヌのコメントを入力するフィヌルド、分類結果のあるフィヌルドです。 少なくずも5぀のコメントを入力するず、結果を予枬できたす。


システムが開発および起動されたので、そのアプリケヌションに぀いお考えるこずができたす。 たずえば、技術孊郚の人文科孊の孊生は、より適切な孊郚に自動的に転送できたす。


GitHubぞのリンク。


PSテキストを線集しおくれおありがずう。



Source: https://habr.com/ru/post/J342572/


All Articles