Argmax.jp
Profile
Software
memo
一覧
開始行:
*pykwic: unicode文字列からkwic(key word in context)を行う...
suffix array構築するぜ〜的なライブラリは数あれど、unicode...
python2.6以上で、3系は今は動きません。
-レポジトリ
--http://bitbucket.org/aihara/pykwic
-依存pythonライブラリ
--cython
--nose
windows用バイナリはそのうち用意します。
** インストール [#a1b33da4]
pip install pykwic
**使い方 [#v377145c]
基本的に、一行なり一文、一段落を一要素として追加しsuffix ...
import pykwic
kwic = pykwic.Kwic()
kwic.add_line(u"うなぎうなうなうなぎなう")
kwic.add_line(u"うらにはにわにわとりがいる")
kwic.build()
kwic.save("ファイル名")
kwic.load("ファイル名")
buildを実行すると、suffix arrayが構築され、saveでインデッ...
searchメソッドでは、検索文字列が存在する場所のprefixと、...
query = u"うな"
for x in kwic.search(query):
print x[0],query,x[1][len(query):]
せっかくなので、拡張接尾辞配列もサポートしています。
差し当たり、以下のようなコードで二回以上出現する極大部分...
maxmal_substringメソッドはジェネレータになっていて、極大...
kwic = pykwic.EKwic()
kwic.add_line(u"うなぎうなうなうなぎなう")
kwic.add_line(u"うらにはにわにわとりがいる")
kwic.build()
for maxsubst in kwic.maxmal_substring():
print maxsubst[0],maxsubst[1]
おもちゃのようなコードですが、ちょっとした用例検索などに...
そのうちpure cythonに直して便利にします。
** kwicのサンプル [#o5a6b6ea]
コード。非常に有用なのでコピペしてお使いください。
import pykwic
kwic = pykwic.Kwic()
text=u"""
ルイズ!ルイズ!ルイズ!ルイズぅぅうううわぁああああああ...
あぁああああ…ああ…あっあっー!あぁああああああ!!!ルイ...
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハ...
んはぁっ!ルイズ・フランソワーズたんの桃色ブロンドの髪を...
間違えた!モフモフしたいお!モフモフ!モフモフ!髪髪モフ...
小説12巻のルイズたんかわいかったよぅ!!あぁぁああ…ああ...
アニメ2期放送されて良かったねルイズたん!あぁあああああ...
コミック2巻も発売されて嬉し…いやぁああああああ!!!にゃ...
ぐあああああああああああ!!!コミックなんて現実じゃない...
ル イ ズ ち ゃ ん は 現実 じ ゃ な い?にゃああああああ...
そんなぁああああああ!!いやぁぁぁあああああああああ!!...
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?...
表紙絵のルイズちゃんが僕を見てるぞ!ルイズちゃんが僕を見...
アニメのルイズちゃんが僕に話しかけてるぞ!!!よかった…...
いやっほぉおおおおおおお!!!僕にはルイズちゃんがいる!...
あ、コミックのルイズちゃああああああああああああああん!...
あっあんああっああんあアン様ぁあ!!シ、シエスター!!ア...
ううっうぅうう!!俺の想いよルイズへ届け!!ハルケギニア...
"""
for line in text.split("\n"):
kwic.add_line(line)
kwic.build()
query=u"クンカ"
for res in kwic.search(query):
print res[0][-10:].rjust(10,u" "),' ',query,' '...
結果
あぁ クンカ クンカ!クンカクンカ...
あぁクンカ クンカ !クンカクンカ!スー...
あぁクンカクンカ! クンカ クンカ!スーハースー...
クンカクンカ!クンカ クンカ !スーハースーハー!...
の桃色ブロンドの髪を クンカ クンカしたいお!クン...
ブロンドの髪をクンカ クンカ したいお!クンカクン...
ンカクンカしたいお! クンカ クンカ!あぁあ!!
ンカしたいお!クンカ クンカ !あぁあ!!
&hatena_bookmark_anywhere();
終了行:
*pykwic: unicode文字列からkwic(key word in context)を行う...
suffix array構築するぜ〜的なライブラリは数あれど、unicode...
python2.6以上で、3系は今は動きません。
-レポジトリ
--http://bitbucket.org/aihara/pykwic
-依存pythonライブラリ
--cython
--nose
windows用バイナリはそのうち用意します。
** インストール [#a1b33da4]
pip install pykwic
**使い方 [#v377145c]
基本的に、一行なり一文、一段落を一要素として追加しsuffix ...
import pykwic
kwic = pykwic.Kwic()
kwic.add_line(u"うなぎうなうなうなぎなう")
kwic.add_line(u"うらにはにわにわとりがいる")
kwic.build()
kwic.save("ファイル名")
kwic.load("ファイル名")
buildを実行すると、suffix arrayが構築され、saveでインデッ...
searchメソッドでは、検索文字列が存在する場所のprefixと、...
query = u"うな"
for x in kwic.search(query):
print x[0],query,x[1][len(query):]
せっかくなので、拡張接尾辞配列もサポートしています。
差し当たり、以下のようなコードで二回以上出現する極大部分...
maxmal_substringメソッドはジェネレータになっていて、極大...
kwic = pykwic.EKwic()
kwic.add_line(u"うなぎうなうなうなぎなう")
kwic.add_line(u"うらにはにわにわとりがいる")
kwic.build()
for maxsubst in kwic.maxmal_substring():
print maxsubst[0],maxsubst[1]
おもちゃのようなコードですが、ちょっとした用例検索などに...
そのうちpure cythonに直して便利にします。
** kwicのサンプル [#o5a6b6ea]
コード。非常に有用なのでコピペしてお使いください。
import pykwic
kwic = pykwic.Kwic()
text=u"""
ルイズ!ルイズ!ルイズ!ルイズぅぅうううわぁああああああ...
あぁああああ…ああ…あっあっー!あぁああああああ!!!ルイ...
あぁクンカクンカ!クンカクンカ!スーハースーハー!スーハ...
んはぁっ!ルイズ・フランソワーズたんの桃色ブロンドの髪を...
間違えた!モフモフしたいお!モフモフ!モフモフ!髪髪モフ...
小説12巻のルイズたんかわいかったよぅ!!あぁぁああ…ああ...
アニメ2期放送されて良かったねルイズたん!あぁあああああ...
コミック2巻も発売されて嬉し…いやぁああああああ!!!にゃ...
ぐあああああああああああ!!!コミックなんて現実じゃない...
ル イ ズ ち ゃ ん は 現実 じ ゃ な い?にゃああああああ...
そんなぁああああああ!!いやぁぁぁあああああああああ!!...
この!ちきしょー!やめてやる!!現実なんかやめ…て…え!?...
表紙絵のルイズちゃんが僕を見てるぞ!ルイズちゃんが僕を見...
アニメのルイズちゃんが僕に話しかけてるぞ!!!よかった…...
いやっほぉおおおおおおお!!!僕にはルイズちゃんがいる!...
あ、コミックのルイズちゃああああああああああああああん!...
あっあんああっああんあアン様ぁあ!!シ、シエスター!!ア...
ううっうぅうう!!俺の想いよルイズへ届け!!ハルケギニア...
"""
for line in text.split("\n"):
kwic.add_line(line)
kwic.build()
query=u"クンカ"
for res in kwic.search(query):
print res[0][-10:].rjust(10,u" "),' ',query,' '...
結果
あぁ クンカ クンカ!クンカクンカ...
あぁクンカ クンカ !クンカクンカ!スー...
あぁクンカクンカ! クンカ クンカ!スーハースー...
クンカクンカ!クンカ クンカ !スーハースーハー!...
の桃色ブロンドの髪を クンカ クンカしたいお!クン...
ブロンドの髪をクンカ クンカ したいお!クンカクン...
ンカクンカしたいお! クンカ クンカ!あぁあ!!
ンカしたいお!クンカ クンカ !あぁあ!!
&hatena_bookmark_anywhere();
ページ名: