タグ

ブックマーク / qiita.com/yukinoi (15)

  • コピペはもうやめよう。Pythonでflattenするモジュールflatiの紹介 - Qiita

    ちゃお・・・† はじめに Pythonでネストしている (入れ子構造になってる) リストを1つのリストにまとめたい、つまりflattenしたい時ってたまにありますよね。そうした場合に対処する情報もWeb検索すればすぐ出てきますよね。でも、それをいちいちコピペするのって正直めんどくさくないですか?わたしはめんどくさい。というわけで、この記事ではPythonでflattenするモジュールflatiを紹介します。 現時点ではPython 2.7とPython 3.4~3.8対応です。Pure-Pythonモジュールなので、対応しているPython環境さえあれば、Windows/macOS/Ubuntuなど色々なプラットフォームで動くと思います。 名前の由来 flatten処理とFulvio Fratiさん (一緒に研究したことある先生) をかけてflatiと名付けました。「ふらてぃ」と発音してく

    コピペはもうやめよう。Pythonでflattenするモジュールflatiの紹介 - Qiita
    yukinoi
    yukinoi 2020/01/02
    書きました。
  • Java で NEologd の前処理 neologdn-java - Qiita

    ちゃお・・・† @ragion さんの協力もあって、ついにJavaでのNEologdの前処理モジュール neologd-java をリリースしました! これはなに? 辞書データを冗長にして異表記を吸収するのにも限界がある。 辞書データを生成する際には以下で述べる正規化処理を全て適用しているため、 解析対象のテキストに対して以下の正規化処理を適用すると、辞書中の語とマッチしやすくなる。 と上記のページにあるように、MeCabで解析する前に正規化処理 (前処理) を行うことは重要です。そこで、JavaでのNEologdの前処理モジュール neologd-java を作りました。 どう使うの? Mavenの場合 Maven Central に登録されているので pom.xmlに下記を加えます。 <dependency> <groupId>io.github.ikegami-yukino</gro

    Java で NEologd の前処理 neologdn-java - Qiita
    yukinoi
    yukinoi 2017/03/15
    書きました!
  • ML-Askでテキストの感情分析 - Qiita

    ちゃお……† 今回は感情分析ライブラリML-Askについて紹介します。 ML-Askができること 感情の推定 2,100語の辞書によるパターンマッチングで{喜, 怒, 哀, 怖, 恥, 好, 厭, 昂, 安, 驚}の10種類の感情を推定します。この2,100語は、感情表現辞典に基づいているそうです。 感情の強さ 間投詞、擬態語、がさつな言葉、顔文字、「!」や「?」の数で感情の強さを推定します。 ネガポジ分類 推定された感情から文を{ネガティブ、ポジティブ、ニュートラル}の3種類に分類します。 文脈の考慮 Contextual Valence Shifters (CVS) という概念に基づいて, 文脈を考慮した感情推定を行います. たとえば, 「好きとは言えない」という文の場合、「好き」が否定されているので、「好き」の逆の感情である「厭」だと推定します。 活性的かどうか 推定された感情を元に

    ML-Askでテキストの感情分析 - Qiita
    yukinoi
    yukinoi 2017/02/10
    書きました
  • defragTreesがよさそう - Qiita

    ちゃお……† 今回はdefragTreesという機械学習ライブラリを紹介します。 defragTreesとは RandomForestやXGBoostなどに対して、できるだけ精度やカバレッジを下げないようにしつつ、モデルをシンプルに(ルールを減らす)表現する手法を使ったライブラリです。 ルールが少ないので人間が見たときのわかりやすさがあります。 たとえば、元はシンプルなデータ(Figure 1 の a)でもアンサンブル学習すると無駄に複雑になってしまうことがあります (Figure 1 の b)。そこで、defragTreesを使うとオリジナルと同じようなシンプルさになります (Figure 1 の c)。 コード: https://github.com/sato9hara/defragTrees 論文: https://arxiv.org/abs/1606.09066 使い方 from

    defragTreesがよさそう - Qiita
    yukinoi
    yukinoi 2016/11/30
    書きました
  • Slearp + mpaligner で発音推定 - Qiita

    ちゃお……† 動機 MeCabの辞書に英語など外国語を入れると辞書のボリュームが膨大になって辞書のコンパイルに時間がかかるようになってしまいます。 その逆に、新語の発音推定 (読み推定) がしたいという需要もあります。 また、発音推定ができれば一昨年ごろに流行ったコンピュータで575判定するプログラムへの英語対応もできるようになります。 そこで今回は発音推定の一手段を紹介したいと思います。 アルファベット単語と読みのペアを抽出 UniDicからアルファベット単語と読みのペアを抽出します。 抽出用スクリプトはこちら↓ https://gist.github.com/ikegami-yukino/40a10a0e9611450b0c2a07ceb94b4b4c アラインメント ここでは mpaligner を使います。 自動読み推定(発音推定)のための文字列アライメントツールです.多対多のアラ

    Slearp + mpaligner で発音推定 - Qiita
    yukinoi
    yukinoi 2016/05/14
    書きました
  • Python3での日本語変換モジュールの比較 - Qiita

    ちゃお・・・† 自然言語処理といえば前処理がつきもの。前処理は速いにこしたことがない。というわけで、Python3での日語変換モジュールの比較をしました。 比較項目 全角・半角の変換と、ひらがなからカタカナへの変換。対象文字列が長い場合と短い場合の両方を見る。 比較対象 jaconv (わたしが作ったモジュール。最近 jctconv から名前を変えました) mohayonaoさんのコード cnvk mojimoji zenhan rfZenHan python-nkf 比較結果 詳細はこちら jaconv cnvk mojimoji zenhan rfZenHan mohayonao nkf

    Python3での日本語変換モジュールの比較 - Qiita
    yukinoi
    yukinoi 2016/04/02
    書きました
  • Jupyter notebook上でautopep8によるフォーマッティング - Qiita

    ちゃお...† 日、IPythonデータサイエンスクックブック――対話型コンピューティングと可視化のためのレシピ集というをいただきましたのでさっそく読んでます (まだ読んでる途中)。 IPythonではmagicコマンドという、セルや行に対して頻繁に行われるような処理を簡単に実行できるようにする仕組みがあります。デフォルトでいくつか入ってるのですが、自分でmagicコマンドを作ってカスタマイズすることもできます。 わたしは、仕事中の6割くらいはJupyter notebookで何かしてる人なので、コードが汚くなった時にJupyter内で解決できたらうれしいなって思いました。そこでJupyter notebookからautopep8でPEP8コーディングスタイルにフォーマッティングするものを書きました! こちらにディレクトリに置いてます。 https://github.com/ikega

    Jupyter notebook上でautopep8によるフォーマッティング - Qiita
    yukinoi
    yukinoi 2016/03/14
    書きました
  • WindowsでのPython外部モジュール導入のはまりどころ - Qiita

    ちゃお……† 先日のこと、急に「自分がPyPIで公開してるモジュールたちはWindowsでも動くのかな?」と疑問が頭によぎったので調べました。(普段はMac使ってます) 結論から言うと、全部使えました! ですが、試行錯誤が過酷だったのでノウハウを共有したいと思います。 文字コードの問題 CやC++などのファイルをコンパイルできない場合 ファイルをなかなか離してくれない問題 文字コードの問題 PythonのモジュールはUTF-8前提のものがほとんどですが、 WindowsではCP932という文字コードを前提にしているので、 setup.pyでのインストール時に他のファイルを読み込むと下記のようなエラーが起こります。 C:\Users\yukino>pip install jctconv Collecting jctconv Downloading jctconv-0.1.tar.gz Com

    WindowsでのPython外部モジュール導入のはまりどころ - Qiita
    yukinoi
    yukinoi 2016/03/12
    書きました
  • scikit-learnの決定木/ランダムフォレストのルールからPythonコードを生成 - Qiita

    はじめに Python機械学習といえばscikit-learnですが、scikit-learnを使うにはnumpyやscipyといった大きめのライブラリを入れる必要があります。でも、プログラムでほんのちょこっとだけ機械学習のモデルを使って分類したいって場合だと、わざわざそういう重いもの入れたくないなーと思うときがあります。scikit-learnで学習したものをnumpy, scipy, scikit-learnなしに使って分類処理ができたらなーって。 そこで今回はscikit-learnの決定木 (DecisionTreeClassifier) やRandom forest (RandomForestClassifier) からif-then形式のコードを生成するものを紹介します。 https://github.com/ikegami-yukino/misc/blob/master/m

    scikit-learnの決定木/ランダムフォレストのルールからPythonコードを生成 - Qiita
  • WikipediaのデータからElasticsearch用類義語辞書をつくる - Qiita

    Elasticsearchには類義語によるクエリ拡張機能があります。これを適用すると まどマギ と検索したときに まどかマギカ と書かれた文書もヒットするようになります。 (LuceneやSolrにもありますがここではElasticsearchの話だけします) この類義語辞書は、人手で作ること (e.g., FRILの商品検索をnGramから形態素解析にした話 - mosowave) もできますが、今回はなるべく手間をかけたくないのでWikipediaのリダイレクトデータから自動で類義語辞書を作る方法を紹介します。 (自動といってもノイズも含まれてるので実用的に使うにはある程度人手でフィルタリングする必要があります。それでも一から人手で作るよりは手間が少ないと思います) (ElasticsearchではWordNetでの類義語検索に対応しているようですが、これを書いてる2015年12月時点

    WikipediaのデータからElasticsearch用類義語辞書をつくる - Qiita
  • PythonでのMeCabを速くするtips - Qiita

    ちゃお... Python Advent Calendar 2015 18日目の記事です... Pythonといったらデータサイエンスに強いし、データサイエンスといったら形態素解析が必要になることがあるし、形態素解析といったらMeCabだし――ということで、今回はPythonでのMeCabの処理を少しでも速くする豆知識を共有したいと思います! parseToNodeを捨てよ parseを使おう MeCabの解析結果を得るにはparseとparseToNodeの2つのメソッドがあります。 わたしはもっぱらparseToNode使ってたのですが、なんか遅いなーって思って、当に遅いのか確かめるために処理時間測ってみました。現実的な設定でやった方が実用的だと思ったので、今回は夢野久作のドグラマグラから名詞を抽出することにします。 コード import MeCab tagger = MeCab.T

    PythonでのMeCabを速くするtips - Qiita
    yukinoi
    yukinoi 2015/12/16
    書きました
  • Python 3 の変数名に使える文字たち - Qiita

    きっかけ Python 3 では変数や関数の名前にASCII文字以外が使えるので、たとえばこんな風にコードを書くことができます。 import numpy as np def σ(a): return 1 / (1 + np.exp(-a)) φ = np.array([1, 0, 1]) w = np.array([1, -1, 0.5]) σ(np.dot(φ, w)) ちょっとだけ数式っぽくないですか? 今まで phi って書いてたのが φ ってそのまま書けるんです! 今まで予約語の lambda と被らないように LAMBDA とか l とか書いて回避してたのを λ = 0.5 って書けたらうれしくないですか! ってなると、 「わーい!ギリシャ文字とかいっぱい使いたい!」 ってなりますよね? 問題 ところが、、、 >>> ∆ = 100 File "<ipython-input-2

    Python 3 の変数名に使える文字たち - Qiita
    yukinoi
    yukinoi 2015/11/14
    id:bxyxvzz ごめんなさい。冗談のつもりで書いたのですが不快に思う人がいると思わずに軽率に書いてしまいましたm(__)m
  • NLTK に Sentiment Analysis がやってきた - Qiita

    NLTK 3.1でSentiment analysis関連が追加されたので試してみました。 * 3.1時点での話だから今後古くなるかも...† NLTKって? Natural Language Tool Kit という自然言語処理・テキストマイニングの学習や実験に向いてるPython用ライブラリのこと。 品詞タグ付けや構文解析、情報抽出、意味解析などが簡単にできるようになっていて、オライリーから出ている入門自然言語処理の題材にもなってます。 Sentiment analysisって? ざっくりいうと文が positive/negative (快/不快あるいは肯定的/否定的) であるかを判定すること。 日語だと評判分析と呼ばれてたり。 あくまでも2極だけをみるので喜怒哀楽・恥ずかしい・怖いみたいな違いはわからないけど、そこまで細かく知る必要がないときには使えます。 nltk.sentime

    NLTK に Sentiment Analysis がやってきた - Qiita
    yukinoi
    yukinoi 2015/10/17
    書きました
  • PythonでMeCabの制約付き解析を使う - Qiita

    MeCabには制約付き解析という機能がありますが、これについて説明している記事がほとんどなかったので手探りで試してみました。 MeCab 0.996 Python 3.4 mecab-python3 0.7 制約付き解析とは 入力文の一部の形態素情報が既知である、あるいは境界がわかっているときに、 それを満たすように解析する機能です。 たとえば、「にわにはにわにわとりがいる。」という文に対して、「はにわ」の部分が名詞であるとか、「にわとり」の部分が一つの形態素であるというように指定した上で解析することができます。このとき、制約に反する4文字目の「は」が単独で形態素となったり、「にわとり」が「にわ」と「とり」に分割されるような解析候補は排除されます。 制約付き解析 (部分解析)より 形態素境界の制約をつける 文の一部の形態素境界がわかってるときに、その部分を一つの形態素として扱って解析するよ

    PythonでMeCabの制約付き解析を使う - Qiita
  • Pure Python 版オンライン形態素解析ツール Rakuten MA - Qiita

    Pure PythonなRakuten MAを書いたのでその紹介記事です。 Rakuten MAとは Rakuten MAは、楽天NLPプロジェクトさんによるJavaScript形態素解析器です。逐次でオンライン学習して手軽にモデルを更新できる点やブラウザを介してクライアント側から形態素解析ができる点などが特長だと思います。 詳しくは、以下の記事の説明がわかりやすいです。 家 Rakuten MA 日語ドキュメント パソコン工房のPCで遊ぼう第2弾! あんちべさんと一緒に Rakuten MA で形態素解析 - はてなニュース RakutenMAによる形態素解析入門 - あんちべ! Python版 Rakuten MA そんなRakuten MAをPythonで使いたいと思ったので、Python版を書きました! $ pip install rakutenma でインストールできます。

    Pure Python 版オンライン形態素解析ツール Rakuten MA - Qiita
  • 1