2022年8月25日のブックマーク (4件)

  • 形態素解析はJanomeが楽ちん – とりあえずノートがわりに書いてます

    python形態素解析するのはpipでインストールできるJanomeが楽ちんである。数十万ツイート分を形態素解析したのだが量が多いとツライ。せっかくメモリーもCPUコア数も十分にあるのにシングルタスク/シングルプロセスの処理では宝の持ち腐れである。そこで並列処理をしてスループットをあげた。ついでなので大量に行単位で用意されているテキストデータをjanomeを使って並列処理で処理する時のサンプルコードを書いてみた。ちなみに自分のマシンにあわせてCPU数は16にしてある。 githubの上はこちら # # How to use Janome with multi-processing. # Hironobu Suzuki 2022/Aug/24 # import sys from multiprocessing import Pool, Manager from janome.tokeniz

  • 【自然言語処理】Python初心者でも文章要約タスクが実装できた

    はじめに わたくし、Python歴1年の初心者ですが、このたび、苦労に苦労を重ねて、自然言語処理タスクの文章要約を実装できました。 自然言語処理に興味のあるPython初心者のお役に立てればと、記事に残したいと思います。 実装にあたっては、ネットの記事も手あたり次第調べましたが、最終的には、以下のが大変参考になりました。 ただし、バージョンの変更により、このの通りに実装しても、2022年8月時点ではエラーになる箇所があります。出版社経由で著者の方にお聞きして一部コードを修正したほか、自分なりに工夫をして実装しました。 モデルについて Huggingface社が提供している深層学習フレームワークのTransformersを使います。 transformersにはBERTをはじめとするさまざまな言語モデルが実装されていますが、今回のタスクでは、T5というモデルをファインチューニングして使い

    【自然言語処理】Python初心者でも文章要約タスクが実装できた
    gengohouse
    gengohouse 2022/08/25
    “【自然言語処理】Python初心者でも文章要約タスクが実装できた”
  • Rustでテキストの表記ゆれの直したい - Qiita

    しかし細かい要件があった 今回は以下のような要件がありました。 英数字 半角 一部記号(#@) 半角 半角カタカナ(括弧等の記号も含む) 全角 上記サンプルでは全角左括弧が半角になってしまって要件を満たさないです。 色々なcrateを調査 以下のcrateを試してみました。 unicode-jp kanaria 半角カナだけ変換などの部分的なものはありましたが、記号を一部だけ変換する機能がなくてぴったりとは収まりませんでした。 charに分解して変換 入力文字列をcharに分解して処理することを考えました。 use std::collections::HashMap; fn main() { let mut map: HashMap<char, char> = HashMap::new(); map.insert('A', 'A'); map.insert('1', '1'); map.i

    Rustでテキストの表記ゆれの直したい - Qiita
  • MeCabの分かち書きを並列処理で高速化する

    ただ、これだと並列化できないので、サイズが大きいテキストを処理すると結構時間がかかる。 試しに日Wikipedia(3.1GiB)でtimeコマンドを使って計測してみると以下のようになった。 time mecab -Owakati ./wiki.txt -o ./wiki-out.txt ________________________________________________________ Executed in 571.49 secs fish external usr time 537.57 secs 982.00 micros 537.57 secs sys time 29.01 secs 432.00 micros 29.01 secs 10分弱かかるのは結構辛いので、高速化したい。 世の中にあるMeCabの高速化についての記事は、複数ファイルに対して並列処理を行うこ

    MeCabの分かち書きを並列処理で高速化する
    gengohouse
    gengohouse 2022/08/25
    “MeCabの分かち書きを並列処理で高速化する”