treetagger使いたい.......(+ω+)
英語の構文解析がしたかったので
http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/
↑treetaggerのサイトのダウンロードから
1のlinuxパッケージ、2の tagging script、3のinstall-tagger.sh、4のparameter fileからEnglish parameter file をダウンロードし、全部を同じフォルダの中に入れてshコマンドでinstall-tagger.shを端末から実行したら展開されます。
パスを通すとどこからでもtreetaggerが使えるようになって楽なので、
隠しファイルの.bashrcの最後の行に(desktopでls -aで見つけられた。)
PATH="$PATH:/treetaggerの置いてある場所/treetagger/cmd"
PATH="$PATH:/treetaggerの置いてある場所/treetagger/bin"
を書き入れます。
端末にecho "my name is dog."| tree-tagger-english
と入力すると
reading parameters ...
tagging ...
finished.
my PP$ my
name NN name
is VBZ be
dog NN dog
. SENT .
と表示された。
やったね。
あとはpythonから動かせたらいいのですけど、動かない........(+ω+)
tesseract の論文?を読みました。
論文というか、取り扱い説明書???
http://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/33418.pdf
↑ググったらすぐに出てくるこれです。
verview of the Tesseract OCR Engine直訳して、テセラクトの概要......
どういう仕組みでtesseractが文字を読み取っているのか気になった次第です。
一応頑張って読みましたが正しいかどうかは分からないです。。。。。
続きを読む
セット4(後半)
セット4(後半)です。
(6)1行1単語形式(medline.txt.sent.tok)を読み込み,単語の連接を出力するプログラムを実装
# -*- coding: utf-8 -*-
import marshal
line = ""
for i in open("medline.txt.sent.tok.stem","r"):
i = i.strip("\n").split("\t")
if(line != ""):
if(line != "."):
print(line+"\t"+i[1])
line = i[1]
if(line != "")で1回目はlineが""なのでline=i[i]となります。
if(line != ".")でlineが"."になるまで出力していきます。
line="."となるとまたline=i[1]となりこれをループで繰り返していきます。
続きを読む
tesseract を使うときでの手こずったとこ
プログラムとしてはtesseractをダウンロード出来るサイト(https://code.google.com/p/python-tesseract/)に書いてあるとおりに、
api = tesseract.TessBaseAPI()続きを読む
api.SetOutputName("outputName");
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
mImgFile = "xxx.jpg"
pixImage=tesseract.pixRead(mImgFile)
api.SetImage(pixImage)
outText=api.GetUTF8Text()
みたいな感じで使えます。
セット4(前半)
セット4(前半)です。
(1)ファイルを読み込み,単語をキーとして,品詞,活用形,基本形のタプルのリストを値とするマッピング型に格納せよ.プログラムの動作を確認するため,標準入力から読み込んだ単語の語彙項目を閲覧するプログラムを実装
# -*- coding: utf-8 -*-
import re
import sys
dic = {}
for i in open("inflection.table.txt","r"):
i=i.split("|")
key=i[0]
word=(i[1],i[3],i[6])
dic.setdefault(key,).append(word)
word = ''
if(word != '0'):
word = input('単語入力')
print("入力="+word)
if(word in dic):
print(dic[word])
else:
print("登録されてません")
Pythonでマッピング型としてはdictというものがあり、それを使った。
setdefaultで指定したkeyが無い場合に、keyを辞書に追加することができ、dic.setdefault(key,).append(word)でどんどん追加していくことができます。
inputで入力を取得できます。
続きを読む