タグ

ブックマーク / yag-ays.github.io (8)

  • Wikipedia CirrusSearchのダンプデータを利用する

    Wikipediaのデータを容易に利用できるCirrusSearchのダンプデータについて紹介します。これを利用することにより、Wikipediaの巨大なXMLデータをパースしたり、Wikipedia Extractorなど既存のツールで前処理することなく、直にWikipediaの各種データにアクセスすることができます。 tl;dr 細かいことは置いておいて、素直にWikipediaの日語エントリーに書かれているテキストを取得したい場合、 ここのCirrusSearchの任意の日付のダンプデータjawiki-YYYYMMDD-cirrussearch-content.json.gzを落としてくる 中に入っているjsonデータをパースして、偶数行の"text"を取得するコードを書く とすることで、簡単にWikipediaのテキストデータを取得することができます。 CirrusSearchダ

    Wikipedia CirrusSearchのダンプデータを利用する
    knok
    knok 2020/09/25
  • Out-of-the-box - 日本語Wikipediaで学習したdoc2vecモデル

    Wikipediaを対象にdoc2vec学習させたモデルを作成したので、学習済みモデルとして公開します。 概要 doc2vecは2014年にQuoc LeとTomas Mikolovによって発表された文章の埋め込みの手法です。今更doc2vecかという感じではありますが、日語のdoc2vecの学習済みモデルは探した限り容易に利用できるものがなかったこともあり、せっかくなので作成したモデルを配布します。 word2vecのような単語の分散表現においては学習済みモデルとして配布されたものを利用することが多いですが、文章の埋め込みに関しては対象とするドキュメント集合やそのドメインに特化した学習モデルを作成することが多い印象です。なので、学習済みモデルファイルの配布自体にそれほど意味があるわけではなさそうですが、既存手法との比較に利用したり、とりあえず何かしらの手法で単語列から文章ベクトル

    Out-of-the-box - 日本語Wikipediaで学習したdoc2vecモデル
    knok
    knok 2020/02/12
  • Flairを使ってSWEMによる文章埋め込みを計算する

    概要 Flairは、Pytorchで書かれた自然言語処理用のフレームワークです。固有表現抽出や品詞タグ付け、文章分類などの機能を提供しているほか、文章埋め込み (Sentence Embedding) も簡単に計算することができます。以前にブログで紹介したSWEMも扱うことができたので、ここで使い方を紹介したいと思います。 記事:SWEM: 単語埋め込みのみを使うシンプルな文章埋め込み - Out-of-the-box 方法 単語ベクトルの読み込み まずFlairで学習済みの単語埋め込みベクトルを読み込みます。あらかじめ学習済み単語ベクトルのファイルを用意しておく必要はなく、以下のコードを初めて動かす際に自動でウェブからダウンロードされます。日語の場合は、fastTextが提供しているja-wiki-fasttext-300d-1Mが選択されます。 from flair.embeddi

    Flairを使ってSWEMによる文章埋め込みを計算する
    knok
    knok 2020/01/07
  • 深層学習時代の言語判定の最新動向

    概要 言語判定(Language identification)とは、与えられた文字列が何語で書かれているかを判定するタスクです。例えば「こんにちは」なら日語、「Hello World.」なら英語といったように、世界各国で話されている言語のうち何に属するかを推定するというものです。 これだけ聞くと非常に簡単な問題のように思えますよね。出てくる単語を辞書で探せば何語か分かりそうなものですし、書かれている文字を見ても容易に判別できそうな気がします。Google翻訳のような機械翻訳が高精度に文章を翻訳できる現在において、言語を判定するなんて行為はより基的なことで、できて当たり前とも思えます。実際に2010年時点でサイボウズ・ラボの中谷さんが作成された言語判定エンジンlanguage-detectionは、49言語で99.77%の正解率で判定することができています(source)。他の言語処理

    深層学習時代の言語判定の最新動向
    knok
    knok 2019/05/07
    n-gram頻度ベースの手法は見たことある
  • 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化

    概要 magnitudeという単語埋め込みを扱うライブラリには、単語を構成する文字列を考慮したout-of-vocabularyの初期化の方法が実装されています。EMNLP 2018の論文と実際のコードを元に、その初期化の方法を実装して試してみました。 背景 KaggleのQuora Insincere Questionsコンペを終えて KaggleのQuora Insecure QuestionsのコンペではOOVの対応が重要だったっぽいけど、magnitudeはランダムベクトルの付与とかミススペルの対応とかしてくれるみたいだ。ロジック確認しないと何してるのかわからないけど……  https://t.co/d8tteqwwCp — やぐ (@yag_ays) February 26, 2019 KaggleのNLPコンペであるQuora Insincere Questions Class

    単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
    knok
    knok 2019/03/01
  • A La Carte Embeddingの実装

    ACL2018にて発表された“A La Carte Embedding: Cheap but Effective Induction of Semantic Feature Vectors”を実装しました。未知語やngramなどの単語埋め込みを既知の学習済みベクトルから計算する手法です。 この記事はSansan Advent Calendar 2018 の8日目の記事です。 概要 “A La Carte Embedding"は、文脈における周囲の単語埋め込みを平均したものが学習済みの単語埋め込みと一致するように線形変換を学習することで、未知語に関しても単語埋め込みのベクトルを推定する手法です。これにより、通常の単語埋め込みでは学習が難しいような低頻度語であったり、複合名詞などの複数の単語からなる語においても、分散表現を得ることができます。 論文の著者らは、これまでにSIF Embeddi

    A La Carte Embeddingの実装
    knok
    knok 2018/12/11
  • 学習済み分散表現をTensorBoardで可視化する (gensim/PyTorch/tensorboardX)

    word2vecや系列モデル等で学習した分散表現の埋め込みベクトル(word embeddings)は、単語の意味をベクトル空間上で表現することが可能です。最も有名な例では「King - Man + Woman = Queen」のように意味としての加算や減算がベクトル計算で類推可能なこともあり、ベクトル空間の解釈として低次元へ写像する形で分散表現の可視化が行われています。 可視化の際に用いられるツールとしては、TensorFlowのツールの一つであるTensorBoardが、豊富な機能とインタラクティブな操作性を備えていて一番使い勝手が良いと思います。ただ、TensorFlowと組み合わせた可視化は容易なのですが、他のツールやパッケージで作成したコードをそのまま読み込めないなど、かゆいところに手が届かないと感じる部分もあります。 そこで今回は、すでに学習された単語の分散表現を可視化するため

    学習済み分散表現をTensorBoardで可視化する (gensim/PyTorch/tensorboardX)
    knok
    knok 2018/08/29
    これでTensorFlow hubの日本語ベクトルを可視化してみたい
  • 文字の図形的な埋め込み表現 Glyph-aware Character Embedding

    「文字の図形的な埋め込み表現」は、文字の図形的な情報から埋め込み表現を学習したデータセットです。文字の意味や文章中の文脈などのセマンティクスから構成する分散表現とは違い、文字の形状という視覚的な特徴を学習しています。それぞれの文字に対する埋め込み表現の近さを計算することで、似た形の文字を推定することができます。 ダウンロード 下記のGitHubレポジトリからダウンロード可能です。以下のURLを開いて「Download」をクリックしてください。 convolutional_AE_300.tar.bz2 (解凍前:88MB, 解凍後:180MB) 以下の2つのファイルが入っています。フォーマットが異なるだけで、どちらも同じベクトルデータです。 convolutional_AE_300.bin convolutional_AE_300.txt その他サンプルコードなどのすべてのファイルは、以下の

    文字の図形的な埋め込み表現 Glyph-aware Character Embedding
    knok
    knok 2018/07/29
  • 1