0

ディレクトリ内のファイルを開き、spaCy NLP を実行し、依存関係解析情報を新しいディレクトリ内のファイルに出力する次のコードがあります。

import spacy, os

nlp = spacy.load('en')

path1 = 'C:/Path/to/my/input'
path2 = '../output'
for file in os.listdir(path1):
    with open(file, encoding='utf-8') as text:
        txt = text.read()
        doc = nlp(txt)
        for sent in doc.sents:
            f = open(path2 + '/' + file, 'a+')
            for token in sent:
                f.write(file + '\t' + str(token.dep_) + '\t' + str(token.head) + '\t' + str(token.right_edge) + '\n')
    f.close()

問題は、これが出力ファイルの依存関係の順序を保持しないことです。API ドキュメントで文字位置への参照が見つからないようです。

4

1 に答える 1

1

文字インデックスはtoken.idxです。単語インデックスは にありtoken.iます。これは特に直感的ではないことはわかっています。

トークンは位置によっても比較されるため、次のことができます。

for child in sent:
    word1, word2 = sorted((child, child.head))

これにより、ドキュメント順に配置された各依存関係アークが取得されます。ただし、右端で何をしようとしているのかわからないので、これがあなたの望むことを完全に行うかどうかはわかりません。

于 2016-11-04T20:07:48.547 に答える