在Python中运行RFTagger

2022-07-06 12:13:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Pyhton代码中使用RFTagger(http://www.cis.uni-muenchen.de/~schmid/tools/RFTagger/)。我让它工作的唯一方法是:

file = open("RFTagger/temp.txt", "w")
file.write(text)
file.close()
test_tagged = check_output(["cmd/rftagger-german", "temp.txt"], cwd="RFTagger").decode("utf-8")

有更简单/更快的方法吗?或者有没有类似的库可以提供相同的输出?我特别需要德语。 感谢您的帮助:)


Tags: 方法代码txthttppyhtonwwwdetoolstempfileunicismuenchenrftaggerschmid
1条回答
网友
1楼 ·

如果这样运行,速度会快得多:

from subprocess import check_output, run
from nltk.tokenize import sent_tokenize, word_tokenize

#run this once
run(["make"], cwd="RFTagger/src")

#run this for every text (text is a string)
file = open("RFTagger/temp.txt", "w")
file.write("\n\n".join("\n".join(word_tokenize(sentence, language='german')) for sentence in sent_tokenize(text, language='german')))
file.close()
test_tagged = check_output(["src/rft-annotate", "lib/german.par", "temp.txt"], cwd="RFTagger").decode("utf-8").split("\n")

我可以将运行时间从大约40秒/文本减少到1.5秒。你知道吗

热门问题