日本語の形態素解析器。 同機能を持つChaSenの3-4倍はやい。 また、はてなキーワードの抽出をTRIE を使って1600倍早くするPerl(&C++)スクリプトを公開している。 http://chasen.org/~taku/blog/archives/2005/09/post_812.html 近頃ではMysqlの全文検索ソフトSennaへの組み込みや、 作者の工藤氏によるAJAXによる日本語変換など、何かと話題になることが多い。
データエンジニア兼バックエンドエンジニアの @kazasiki です。 今回は2022年現在のPythonおよびmecabまわりの事情をつらつらとまとめたいと思います。 日本語の自然言語処理(特に形態素解析)を扱う場合はよくお世話になるツールなのですが、mecab自体が歴史のあるツールだったり、辞書データにも栄枯盛衰があったり、ビルドが大変だったり、という感じで、初学者にはやさしくない要素が満載です。 実際に開発に使う際もプロジェクトによって環境構築や利用方法がばらついたりする可能性もあります。実際、社内でも少し問題になったことがあるので、今回ちょっと整理するための記事を書こうと思った次第です…
はじめに NEologdとは NEologdの導入手順 NEologdのインストール 辞書のコンパイル ファイルの移動 mecabrcの編集 PythonでNEologdを動かしてみる 精度を比較してみたらすごかった はじめに NEologdをWindowsに入れてPythonで動かすまでに時間がかかってしまったので備忘録です。 前回はMeCabを入れて動かしたので、今回は辞書を入れて形態素解析の精度を上げてみます。 辞書データを入れることで分割されて、思うように認識されない単語も1単語として認識されるようになります。 NEologdとは NEologdはMeCab用のシステム辞書です。 新し…
形態素解析とは MeCabとは MeCabの導入手順 MeCab 64bit版の導入 MeCab 64bit版をインストール Pathを通す cmdで動作確認 PythonでMeCabを使う手順 MeCabで形態素解析をしてみた MeCabを導入してみて 形態素解析とは 形態素解析は自然言語処理のひとつで自然言語の文章を形態素(品詞や単語ごと)に分解する処理です。 もっと簡単に言うと、文章を品詞ごとに分解します。 例文をMeCabに与えて形態素解析をしてみると以下のように品詞ごとに分解されます。 例:私はMeCabを使って形態素解析の処理を実施した。 私/は/MeCab/を/使っ/て/形態素/…
Python 実践 データ加工/可視化 100本ノック」を購入したので、 一通りやっているところです。今日はノック54を行います。 資料は以下から入手できます。 Python実践 データ加工/可視化 100本ノック|サポート|秀和システム ノック54:形態素解析で単語に分解しよう MeCabを使用して文章を最小単位に分解します。 1.MeCabのインストール方法 MeCabのURLに移動します。 taku910.github.io 下にスクロールするとダウンロードと記載されているので、mecab-0.996.exeをダウンロードします。 MeCab HP mecab-0.996.exeを起動す…
タイトルの通りです。 pythonにはneologdnなど文字列を正規化するライブラリが存在していました。 github.com Rubyでは存在しないようだったので、作ってみました。 github.com String型を拡張していて、簡単に使うことができます。 まずはインストール $ gem install normalize_text normalizeメソッドで文字列を正規化します。 require 'normalize_text' '検索 エンジン 自作 入門 を 買い ました!!!'.normalize => "検索エンジン自作入門を買いました!!!" 自然言語処理前の正規化などに…
fortee.jp こういったカンファレンスはiOSDC2020で初めて参加して、「面白かったし発表とかできたらかっこいいなぁ。でも何か発表できるようなネタもないしなぁ…」と思っていました。 今年に入り、仕事の中で「改行位置がiPhone SE(1st)だと微妙だけど、iPhone SE(1st)に合わせて改行しちゃうと今度はiPhone 12 Proで微妙だなぁ…」という状況に出くわしました。 その時は納期に追われて妥協して改行を入れたのですが、そのもやもやが残っていたところにiOSDCのプロポーザル募集を見て、「改行位置制御できたらトークのネタになりそうだなぁ」と思い試したところWORD …
結構詰まりやすいので書きます mecab導入(ubuntu想定) 前提知識:必要なアセットが異なる コマンドライン上で使う: mecab スクリプト上で使う: mecab-python3 mecabの導入 1. MeCabのインストール $ apt install mecab libmecab-dev mecab-ipadic-utf8 2. mecab-python3のインストール $ pip install mecab-python3 3. NEologdのインストール $ git clone --depth 1 https://github.com/neologd/mecab-ipadi…
自然言語処理できるようになりたい 日本語NLPで知ったような事が言いたいので、浅く広く急いで勉強する とりあえす使いたいNLPのソフトウェア 基本言語:Python 形態素解析:Mecab 係り受け解析:CaboCha (計量テキスト分析:KH Coder) 環境構築① ローカル環境 構成 windows10 64bit python 3.7.6 Anaconda 1.7.2 Mecab 公式32bit 0.996 CaboCha 公式 0.69 Mecab-python バインド mecab 情報散在混乱しすぎで焦る 大目的はKH Coder以外はPythonで全部操作できるようにすること。…
これはなに? 前回自然言語処理をする環境構築をやってみたので、GWの宿題として実際に分析をやってみました。 せっかくなので自分が好きな分野で分析してみたかったので、好きなアーティストのポルカドットスティングレイの歌詞データを自然言語処理、分析してみました。
これはなに? 業務で自然言語処理をすることが多くなって、環境構築するのがメンドイのでコンテナ化してみました。 形態素解析のためにMeCab、Word2Vecを利用するためにgensimをそれぞれインストールし、プラットフォームとしてJupyterLabを利用できるようにしています。
はじめに UnityでOpenJTalkを利用したく、今までOpenJTalkForUnityとSharpOpenJTalkを試してきました。github.comgithub.comどちらも一部プラットフォームのUnityでは動作確認できたのですが、iOS・Androidでは動作は確認できていません。 ライブラリ 公式対応プラットフォーム OpenJTalkForUnity Windows SharpOpenJTalk win-x64, win-x86, osx, linux, browser-wasm 一応SharpOpenJTalkに関しては.soと.aが入っていたので、iOS・Andro…
はじめに はじめまして。 プラットフォームサービス本部 データプラットフォームサービス部門の森分です。 もともと私は、NTT Comのクラウドサービスをベースにした法人向けソリューションの個社別運用やインフラ関連のプロジェクトマネージャ業務を担当しておりました。 最近はSmart Data Platform(以下、SDPF)アーキテクトなる、お客様課題の解決やNTT Comのビジネスの中でSDPFの活用を推進する部隊に参画しています。 データ利活用を支えるSDPFのアーキテクトがデータ利活用に詳しくなければ立つ瀬がありません。 そうならないように日々研鑽を積んでいるわけですが、その中で作ったT…
AnacondaからWinPythonへ WinPython のインストール(Windows 上) Pathの通し方 https://wa3.i-3-i.info/word18471.html pythanのverは安定している3.7に WinPythonのパッケージはSpyderも入っている https://github.com/winpython/winpython/releases/download/2.3.20200530/Winpython64-3.7.7.1.exe にした ▼各種ライブラリーのインストール コマンドプロンプトから実行(管理者権限で) ・セットアップツールの更新 p…
こんにちは。NewsPicksエンジニアの雲越です。 NewsPicksでは、記事のレコメンドを始めとする機械学習を組み込んだシステムがいくつか動いており、中にはAmazon SageMakerを使って実装されているものもあります。 今回はそんなシステムの一つである記事分類システムが、どのようにSageMakerを使っているかについて紹介します。 どんなシステム? NewsPicks編集部によってオリジナル記事が投稿されたり、URLピックという機能やRSSによって外部メディアの記事が取り込まれたりすると、NewsPicks内に記事が登録されます。 この際に、その記事のタイトルとサマリー(本文を…
以前の記事で、古典的ngram言語モデルについて、NLTKを利用し、英語データセットの結果をまとめました。 eieito.hatenablog.com 単語を分かち書きさえすれば日本語でも実行可能なので、日本語データセットでパープレキシティを算出していきます。 データ 学習データとテストデータの準備。 ngramデータさえあればplain textがなくとも実装できますが、評価のためには学習データと同じ性質のテストデータ(plain text)が必要です。 Wikitext-JA は Wikipediaデータがtrain/testに分割されているので今回利用します。 データも「秀逸な記事」と「…
巷でIPランドスケープが騒がれていて、テキストマイニングの技術はつけておきたいところ。 従来技術では既存の特許分類でソートするだけでもかなり有益な分析はできるのですが、変化の激しいAIなどはそもそも「欲しい特許分類がなーい」ということも多々あり、テキストマイニングの技術が欲しくなるところでもあります。 ワードクラウドくらいならオンライン上でできたりしますが、機密性の観点や、もっと他のこともしてみたいとなると、自分でも原理を理解していく必要が出てきます。 textmining.userlocal.jp そこで、テキストマイニング力向上のため、最近いくつか読んだのでメモ。 まず一冊目はこちら。 (…
Sudachiとは SudachiPy SudachiPyの導入手順 SudachiPyのインストール 辞書のインストール sudachi.pyの作成 SudachiDict-fullのインストール sudachi.pyの更新 PythonでSudachiを動かしてみる Sudachiとは Sudachiはオープンソースの形態素解析エンジンのひとつで形態素解析や分かち書きの処理が行えます。 Sudachiを開発した研究所が徳島にあるのでSudachiとなったのでしょうか。 MeCabにSudachiにCabochaと、、、 食べ物にまつわるのがお決まりっぽいですね。 前回はMeCabを入れてみ…
まとめ sklearn.feature_extraction.text.TfidfVectorizer で TF-IDF 値を出すとデフォルトでは[その文書内でのその単語の出現回数]×[log( (1 + 全文書数) / (1 + その単語が出現する文書数) ) + 1]を文書ごとに L2 正規化したものである。 参考文献 tf-idf - Wikipedia(2022年6月5日参照). sklearn.feature_extraction.text.TfidfVectorizer — scikit-learn 1.1.1 documentation(2022年6月5日参照). 6.2. Fe…
はじめに この記事を読んでいる方は、データサイエンスの世界でデータサイエンティストやデータアナリストを目指す方が多いかと思います。私自身ももともとは実験家でPythonなど触れたことのない人物でした。そこから、約1年半、Pythonを各ライブラリを用いて数値計算、統計解析、自然言語処理、Webスクレイピング、機械学習を行ってきました。 その結果、本業でのビックデータの解析、副業でのアプリ開発などに役立つことができ、ポータブルスキルとして私自身の武器となりました。 そこで、このブログでは私が学んだPythonライブラリを用いた初心者向けのプログラミングの内容を紹介していきます。こちらはデータ処理…
BERTとNLPの基礎について勉強したのでメモ。 paraphrasingとは? どんなタスク? 言い換え。要約とか剽窃検出での応用がある。 named entity recognitionとは? 文中の固有表現にタグをつけるタスク。地名とか時間とか人名とか BERTの学習は穴埋めだという記憶があるが、具体的には? Masked Language Model (MLM)というパラダイム。一定確率で入力単語をMASKして、これを予測するソフトマックス出力のモデルを学習する。 BERTの特徴はBidirectionalな文脈考慮をしていること。これを実現するためにlossも前方予測ではなくMask…
はじめに "> SEOでキーワードの出現頻度解析をしたい人必見!!最近流行りのWebマーケティングに限らずマーケティングで、ターゲットとする業界でのホットワードやキーワードを調査することはよくあることだと思います。特に費用をかけずに始められる集客方法であるSEO(Search Engine Optimization:検索エンジン最適化)では、キーワードの出現頻度を知るのは基本中の基本となっています。出現頻度の上位に来るワードを採用してブログやページを作り込むのはSEOの基本的な方法になっていて、本文中に適切にそのワードを含めることが重要な方法となっています。一般的に、「キーワード出現頻度解析」…
はじめに Pythonを用いて形態素解析をしようとすると、Mecabのライブラリが必要になりますよね。しかし、初心者の私はpip installはしたけど、Mecabの部分でエラーが出て非常に焦りました。その後、Mecabの動かし方を調べて実践したところ、正常に動作するようになりました。 本記事では、Pythonを用いた形態素解析に必要なMecabのインストールと設定方法について説明します。 インストール方法と設定方法 以下のURLに入って、「mecab-64-0.996.2.exe」をダウンロードしてください。 https://github.com/ikegami-yukino/mecab/…