ウェブフロント
- angular
- corewebvitals
- editorconfig
- gatsby
- hls
- html
- javascript
querySelectorAllで取得した要素は配列ではないらしい
JavaScript 配列内のオブジェクトの更新ってどうする?
デバッグ関数とかnullチェック関数をutil/index.tsにおいとけば楽なことに今頃気づいた。
ブラウザからジャイロセンサーを使ってみる
JS 画像のアップロード、プレビュー機能を実装
「数値から各桁の値を取り出す処理」って言われたら数学的な処理が一番に思い浮かぶけど、JSならそんなことなかった。
Callback時代の関数をPromise化する
個人的実装されてほしいECMA Script Proposal
JavaScriptのprototypeを使う
音声をなみなみさせる
AudioWorkletとAudioWorkletProcessorを使って音声のビジュアライゼーション
- next
- nuxt
- playwright
- prettier
- react
- reactnative
- tensorflowjs
- tools
- typescript
- wasm
- websocket
- ポエム
- 開発環境
サーバー
その他
Python MeCabを使って形態素解析
はじめに
オンラインのハックツハッカソンで文章から重量単語を抽出する処理を書きました.
MeCabを使用したのでそれについての記事です.
MeCabを使用したのでそれについての記事です.
[!NOTE] MeCabは京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。
https://taku910.github.io/mecab/
環境構築参考記事(Qiita)
https://qiita.com/taroc/items/b9afd914432da08dafc8
試してみる
import MeCab
class Analysis():
def __init__(self, dir=u'./dic/mecab-ipadic-neologd'):
# 辞書を選択
self.mecab = MeCab.Tagger('-d ' + dir)
def main(self, text):
self.parseText(text)
def parseText(self, text):
node = self.mecab.parseToNode(text).next
while node.next:
print('{}: {}'.format(node.surface, node.feature))
node = node.next
if __name__ == '__main__':
text = '合法的なトビ方ノススメ'
analysis = Analysis()
analysis.main(text)
モジュール化するためにクラスで実装しています.
コンストラクタで形態素解析に使う辞書を指定して、インスタンス変数
辞書は↓から取ってきました. 最新の単語も収集していて自動でクロール・更新しているみたいです.
コンストラクタで形態素解析に使う辞書を指定して、インスタンス変数
mecab
を初期化します.辞書は↓から取ってきました. 最新の単語も収集していて自動でクロール・更新しているみたいです.
mecab-ipadic-NEologd
https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md
mainメソッドは外部から呼ぶ用で、parseTextメソッドで形態素解析します.
parseToNodeメソッドがイテレータを返してくれるのでwhileでひとつづつ見ていきます.
parseToNodeメソッドがイテレータを返してくれるのでwhileでひとつづつ見ていきます.
なんかすごくいい感じ(国語嫌いなのでよくわかりません)
まぁあとは実用的?っぽく名詞だけ取り出したりしてみます.
import MeCab
class Analysis():
def __init__(self, dir=u'./dic/mecab-ipadic-neologd'):
# 辞書を選択
self.mecab = MeCab.Tagger('-d ' + dir)
def main(self, text):
wordList = self.pickUpNoun(text)
return wordList
def pickUpNoun(self, text):
node = self.mecab.parseToNode(text).next
result = []
while node.next:
# 名詞のとき配列に追加
if node.feature.split(',')[0] == '名詞':
result.append(node.surface)
node = node.next
return result
if __name__ == '__main__':
text = '合法的なトビ方ノススメ'
analysis = Analysis()
result = analysis.main(text)
print(result)
名詞だけをいい感じに取り出しました.
何かには使えるんじゃない?(
何かには使えるんじゃない?(
終わりに
形態素解析はたのしいですね。マルコフと組み合わせるともっとたのしいかも?
コード書いてるとpythonの言語仕様でけっこう詰まります..
でも出来上がったコードは綺麗だしわりと好きかも
でも型欲しいな〜
でも出来上がったコードは綺麗だしわりと好きかも
でも型欲しいな〜
Thanks you for reading.