唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

自然言語処理

bag of wordsのbagがmultisetという意味だったことを今更知った

自然言語処理や情報検索などでよく使われるbag of wordsモデルというのがある これはテキストデータを単語(形態素?)の位置は無視して単語ごとの出現回数だけで表す方法で、このモデルで表したデータを適当に機械学習の分類器にかけるだけでそれなりによい結…

日本語形態素解析器のイメージ

前にこんなツイートをしたけどもうちょっとちゃんとメモっておく ゆるふわカジュアル勢()なので内容に間違ってる点があったら教えてくださると嬉しいです勝手なイメージだと、MeCab →一番使われてる 。速い。辞書を弄くるのが簡単。いろいろ移植されてる。Ju…

論文感想: "正規-崩れ表記のアライメントに基づく表記崩れパタンの抽出と形態素解析への導入"(214回NL研)

情報処理学会 第214回自然言語処理研究会 概要 ネット上に登場するような崩れた表記のテキストの形態素解析をする。正規の表現(崩れてない表現)と崩れた表現のペアのデータを用意して、崩れ方のパターンと信頼度を学習し、形態素解析時に利用する 手法 正規…

Python用のトピックモデルのライブラリgensim の使い方(主に日本語のテキストの読み込み)

gensimは前に以下の記事でも使ったPython用のトピックモデルなどの機能があるライブラリです。 小説家になろうのランキングをトピックモデルで解析(gensim) - 唯物是真 @Scaled_Wurm 以前紹介した以下の論文でもgensimが使われていました 論文紹介 “Represen…

論文感想: "Social Text Normalization using Contextual Graph Random Walks" (ACL 2013)

"Social Text Normalization using Contextual Graph Random Walks" (pdf) Twitterとかのソーシャルメディアではくだけた表現が多いので、そういうテキストの正規化をする話 以下論文中の例の一部 wuz up bro (what is up brother) 4get (forget), 2morrow (…

論文紹介 “Discriminative Learning with Natural Annotations: Word Segmentation as a Case Study” (ACL 2013)

"Discriminative Learning with Natural Annotations: Word Segmentation as a Case Study" (pdf) 研究室で論文紹介したので以下に資料を貼っておきます。 図表は論文中から引用しています何故か研究室での論文紹介は、資料が英語で口頭説明が日本語なので、…

論文感想: "Microblogs as Parallel Corpora" (ACL 2013)

Utopia/Microtopia Parallel Corpus ↑データなども公開されているみたいですマイクロブログ(TwitterとWeibo)中のツイートから「パラレルな(翻訳になっている)」文章が含まれているものを集めてくる話 基本的には一つのツイート中に複数の言語が含まれている…

論文感想: "Learning Latent Personas of Film Characters" (ACL 2013)

"Learning Latent Personas of Film Characters"(pdf) キャラクターのタイプ(persona、人格)を分析する話。 自然言語処理では物語のプロットとかイベントの連鎖の研究は多いけど、キャラクターのタイプに対する研究は初めてらしい映画のデータを対象としてい…

論文感想: "Identification of Speakers in Novels" (ACL 2013)

"Identification of Speakers in Novels"(pdf) 小説のセリフがどの登場人物のものかを推定する話。 教師ありのランキング学習(SVM-rankを利用)。 7割ぐらいは正解できるらしい先行研究の教師ありの分類で使われている特徴量(セリフとの距離、登場人物の出現…

MeCabでN-Best解を出力した時のコストの表示がおかしい?

「MeCabでN-best解を出力した時に累積コストを見ると順番に並んでないように見えるんですが何故ですか?」ときかれて答えられなかったのでとりあえずメモ 上の質問自体は、質問者がEOSとの連接コストを計算し忘れていたのではないかと思うんですが……それ以外…

論文感想: "Exploiting Topic based Twitter Sentiment for Stock Prediction" (ACL 2013 short)

"Exploiting Topic based Twitter Sentiment for Stock Prediction" 概要 Twitterから株価の指標の上下を予測する話。 似たような話は前からあるけど、この論文ではトピックモデル(前の日のトピックを考慮したDirichlet Process Mixture)を使ってよい結果を…

論文感想: "Good, Great, Excellent: Global Inference of Semantic Intensities"(TACL vol.1)

Good, Great, Excellent: Global Inference of Semantic Intensities 図表、式は論文中から引用 概要 似た意味の形容詞の強弱の順序付けをするタスク 例えば「寒い」「涼しい」「冷たい」「痛い」などの形容詞が与えられた時に、その強弱関係は「涼しい<寒…

論文感想: "TopicSpam: a Topic-Model based approach for spam detection" (ACL 2013 short)

"TopicSpam: a Topic-Model based approach for spam detection" 概要 spam detectionとなっているけれど、以前紹介した以下の論文と同様に、偽のレビューの検出を行っている 論文感想: "Finding Deceptive Opinion Spam by Any Stretch of the Imagination"…

Lossy Countingの変種を実装してみた

前に以下の記事でLossy Countingを実装しましたが、より省メモリな変種があるらしいのでそちらも書いてみました Lossy Countingを実装してみた - 省メモリな頻度計測 - 唯物是真 @Scaled_Wurm 以下の論文のAlgorithm 2の擬似コードそのままです。 "Methods f…

Lossy Countingを実装してみた - 省メモリな頻度計測

大規模データで頻度を数えると、欲しいのはよく登場するアイテムの情報なのに、ほとんど出現しないアイテムの種類数が非常に多くて、それらがメモリを大量に必要としてしまうという問題があるこれに対してアイテムの種類数の最大値に制限を加えたり、頻度に…

論文感想: "The lie detector: explorations in the automatic recognition of deceptive language" (IJCNLP 2009 Short)

"The lie detector: explorations in the automatic recognition of deceptive language" 与えられた文章が嘘かどうかを識別するタスクAmazon Mechanical Turkで大勢の人に、本当の意見と嘘の意見を書いてもらってデータセットにしている。 ナイーブベイズや…

論文紹介 “Representing Topics Using Images” (NAACL 2013)

“Representing Topics Using Images", Nikolaos Aletras and Mark Stevenson 研究室で論文紹介したので適当に以下に資料を貼っておく。 論文を読んだ後で気づいたけど、NAACL 2013はまだやっていないので、preprintバージョン(?)っぽい。 何故か研究室での…

単語などをIDにマッピングする

異なる要素ごとに別々の数値をIDとして割り振って管理したいってことがよくあります。Twitterで以下のようなツイートを見かけました。 Pythonでwids = defaultdict(lambda: len(wids))だけで単語を単語IDにマッピングする辞書を作れることに気づいた。Python…

小説家になろうのランキングをトピックモデルで解析(gensim)

小説家になろうというWeb小説投稿サイトがあります。 いわゆるライトノベル的な作品が多いのですが、近年書籍化される作品が多く出ていて注目を集めています。 続々と「小説家になろう」から書籍化作品が登場! - フラン☆Skin はてな支店 小説を読もう! || …

Python で疎行列(SciPy)

疎行列とは 疎行列は成分のほとんどがゼロである行列のことです。 たとえば、文書に登場する単語の頻度を数えたりするとこういった行列になります。 他にも疎なグラフの隣接行列は疎行列になります。 こういった行列は通常の行列(密行列)を使うよりも、少な…

論文感想: "きたああああああああああああああああ!!!!!11:マイクロブログを用いた教師なし叫喚フレーズ抽出"(DEIM 2013)

"きたああああああああああああああああ!!!!!11:マイクロブログを用いた教師なし叫喚フレーズ抽出"(DEIM 2013) タイトルが気になったので読みました、予稿ですが DEIM2013 暫定予稿集 概要 内容は「ねむいいぃぃぃぃ」とかタイトルにある「きたああ…

MeCabのC++ライブラリを使ってみた(C++11のマルチスレッドに触ってみた)

MeCabをマルチスレッドで動かしてみたい!という話です。 マルチスレッドの方法としてはC++11のstd::threadを使います。MeCabをマルチスレッドで動かす方法については以下の記事が参考になりました。 MeCabをC++から使ってみる | mwSoft またMeCab公式にもマ…

xargsを使った並列化を試したメモ

xargs -P が激しく便利なのでメモ - 新生おともだち研究会 xargs を使ってカジュアルに並列処理 - tagomorisのメモ置き場 ↑の辺りの記事を読んでxargsによる並列化を試してみたメモ。 結果を先に書いておくと、残念ながら並列化してもあまり速くならなかった…

論文感想: "TCSST: Transfer Classification of Short & Sparse Text Using External Data"(CIKM 2012)

TCSST: Transfer Classification of Short & Sparse Text Using External Data 概要 Twitterなどのマイクロブログや検索エンジンのスニペット、レビューなどの短くスパースな文章に対して、外部のリソースを使って転移学習を行うことで精度の向上をする。関…

集合とかベクトルの類似度の計算のメモ

Pythonで実装する類似度計算 - Screaming Loud #1283. 共起性の計算法 ↑この辺りの記事を見て、集合とかベクトルの類似度の計算の記事を下書きのまま放置していたことを思い出したので書き上げた。類似度の計算のコードを書いたのでそれを載せるだけにしよう…

論文感想: "Creating Stories: Social Curation of Twitter Messages"(ICWSM2012)

Creating Stories: Social Curation of Twitter Messages Akisato Kimura: Research Interests: Assisting social curation of Twitter messages 追記 読んだ論文とリンク先の論文(4ページ)が微妙に違うっぽいというか、前に印刷したものと同じ内容の論文(8…

Dartsの仕様につまづいた話――あるいはMeCabに些細なバグを見つけた話

Double ArrayによるTrieのライブラリDartsのcommonPrefixSearch関数は次のような戻り値と引数になっています。 size_t commonPrefixSearch(const key_type *key, T* result, size_t result_len, size_t len = 0, size_t node_pos = 0);ここでresult_lenは結…

論文感想: "Ergodic multigram HMM integrating word segmentation and class tagging for Chinese language modeling"(ICASSP-96)

概要 1996年のかなり古い論文。 隠れマルコフモデル(Hidden Markov Model, HMM)で中国語の形態素解析(単語分割と品詞タグ付け)をする話。 感想 中国語や日本語などの分かち書きされていない言語で、HMMを使って単語分割と品詞タグ付けをする場合の式を知りた…

論文感想: "Automatically Constructing a Normalisation Dictionary for Microblogs"(EMNLP-CoNLL 2012)

"Automatically Constructing a Normalisation Dictionary for Microblogs" 概要 Twitterとかでの単語の正規化用の辞書を作る話。 例、2morw→tomorrow 手法 文脈類似度の似た、辞書にない単語(OOV)と辞書にある単語(IVのペア)を集める 集めたペアを文字列的…

「Darts: Double-ARray Trie System」のサンプルコードが動かない

Darts: Double ARray Trie System Double Arrayを使いたかったので、Dartsを使おうとしたらサンプルコードが動かなくて困りました。 g++でもclang++でもダメでした。 オプションの違いとかなんですかね?exactMatchSearchに戻り値の型を指定したら一応動かせ…