オランダのテキストからsubject-verb-objectトリプルを抽出する必要があります。このテキストは、オランダのNLPツールFrogによって解析され、トークン化され、解析され、タグ付けされ、lemmatizedされます。 Frogは、FoLiA XMLまたはタブ区切りの列形式の出力をトークンごとに1行生成します。 XMLファイルに関するいくつかの問題のために、私は列形式で作業することを選択しました。この例は1つの文を表しています。 今私は文ごとにSVOトリプルを抽出する必要があるので、依存関係である最後の列が必要です。ですから、私はROOT要素と、ROOTに属するsuとobj1要素を取得する必要があります。残念ながら、例文にはobj1がありません。それは持っているふりをしましょう。私の考えは、最初に文ごとにリストを入れ子にしたリストを作成することでした。前処理されたテキストからSVOトリプルを抽出する
import csv
with open('romanfragment_frogged.tsv','r') as f:
reader = csv.reader(f,delimiter='\t')
tokens = []
sentences = []
list_of_sents = []
for line in reader:
tokens.append(line)
#print(tokens)
for token in tokens:
if token == '1':
previous_sentence = list_of_sents
sentences.append(previous_sentence)
list_of_sents = []
list_of_sents.append(tokens)
print(list_of_sents)
「トークン」を印刷すると、すべてのトークンを含む1つのリストが得られます。それは正しいですが、私はまだ文ごとに1つのリスト(トークンのリスト)を入れ子にしたリストを作成しようとしています。 誰かがこの問題を手伝ってくれますか?
(PSは第二の問題は、私はネストされたリストを得れば継続する方法を、私はよく分からないということです)
私はまず、入力形式について混乱があると思います。リンク先のツールのウェブサイトには、出力がXMLであることが示されています。しかし、イメージと '" \ t "'で分割しようとすると、それがTSV(タブで区切られたプレーンテキスト)ファイルであることが示唆されます。それでも、Word文書であると主張しています。おそらく古いバイナリの ".doc"バージョンで、これはすべてのオプションの中で最悪のものです。これを整理して質問を更新してください。 – lenz
@lenzウェブサイトには2つの出力オプションがあると言われているので、FrogはFoLiA XML、タブ区切りのカラムフォーマット出力、トークンごとに1行を生成します。 XMLファイルに関するいくつかの問題のために、私は列形式で作業することを選択しました。しかし、あなたが言ったように.docとして保存しました。.txtファイルとして保存する方がいいですか? – Bambi
私はあなたが実際にはWord文書として保存していないと思いますが、ファイル名を ".doc"で終わらせて保存しました。条約は ".tsv"または時には ".csv"を使用することです。 – lenz