タグ

言葉とスクレイピングに関するotori334のブックマーク (4)

  • N-gramで文章の類似度を調べる - Pythonでいろいろやってみる

    文章の類似度を調べる方法の一つ、N-gramを用いて2つの文章の類似度を調べます。N-gramは「隣り合う連続したN文字」の意味で、2文字なら2-gram、3文字なら3-gramとなります。 例えば2-gramは次のように作成します。 【元の文章】群馬県でマイクロバスが崖下に ↓ 【2-gram化】'群馬' '馬県' '県で' 'でマ' 'マイ' 'イク' 'クロ' 'ロバ' 'バス' 'スが' 'が崖' '崖下' '下に' ある文章のN-gramを作成し、別の文章のN-gramに何回出現するかカウントすることで類似度を算出します。 同じニュースに関する記事の類似度、無関係なニュースについての記事の類似度を2-gramで調べます。 環境 windows10 home Anaconda 3/ jupyter notebook 5.6.0 Python 3.7.0 準備 以下の3つのニュース

  • 第5回 N-gramのしくみ | gihyo.jp

    前回は形態素解析を使う検索エンジンのしくみについて説明しました。今回は、FINDSPOTで使用しているN-gramという検索エンジンのしくみについて説明します。 N-gramによる見出し語の切り出し 前回は、形態素解析による検索エンジンでは、検索可能な最小単位が分かち書きの切り分け単位となる点を説明しました。 一方、N-gramを使った検索エンジンでは、単純に文字の並びを見出し語としてインデックスを作成します。1文字を元にインデックスを作成する方法をユニグラム、2文字の並びを元にインデックスを作成する方法をバイグラム、3文字の並びを元にインデックスを作成する方法をトリグラムと呼んでいます。 1文字:ユニグラム 2文字:バイグラム 3文字:トリグラム N-gramによる見出し語の切り出しは、形態素解析のための文法解析を伴わないため、特定の自然言語に依存しないという特徴があります。 FINDS

    第5回 N-gramのしくみ | gihyo.jp
  • 姓名分割プログラムをつくる-手法編- - 生き抜くぜ21世紀

    (201701/23追記) この記事にミスが見つかりましたので是非とも訂正編もあわせてご覧になってください。すみません。 人間だれでも一度は姓名分割を自動化したくなったことがありますよね? しかしながらネットにはほんの少ししか姓名分割にチャレンジしている人がいないのが現状です。 精度もあまり高くありません。 ということで自分で姓名分割プログラムを作ってみました。 まあまあうまくいったのでブログにする次第です。 試行錯誤はけっこうしたのですが、内容がぶれるのを恐れてあくまで手法の解説記事とします。 要件 入力:篠田麻里子 出力:篠田 麻里子 のようなプログラムを作る ざっくりした方針 さて、まず絶対にやりたくなかったのが苗字・名前データベースの作成です。理由は以下です。 ・どれだけ苗字を用意すればいいのかわからない ・森、森久、森久保など苗字がどこまでなのかの判定が難しそうだったから(データ

  • darts-cloneを使って最長一致法で分かち書きしてみる - 株式会社ホクソエムのブログ

    ホクソエムサポーターの白井です。 呪術廻戦をみて喜久福がべたくなりました *1。 今回は形態素解析について深堀りしてみます。 日語の自然言語処理において、形態素解析は必ずといっていいほど通る道です。 形態素解析を必要としないSentencePieceのような深層学習向けのtokenizerも出現していますが、品詞単位で分割する形態素解析が重要であることは変わりありません。 そんなこんなで、『実践・自然言語処理シリーズ2 形態素解析の理論と実装』 (以降「形態素解析」と表記)を読んでいます。 リンク先の目次を見て分かるとおり、基礎の部分から実装まで説明されているです。 今回は4章で紹介されている darts-clone を使って、精度は粗いが高速で分かち書きができる最長一致法で、どれぐらい分かち書きが可能かを検証します。 事前知識・辞書引き darts-cloneを使ってみる 単語辞

    darts-cloneを使って最長一致法で分かち書きしてみる - 株式会社ホクソエムのブログ
  • 1