Python 3.x 通过Python运行TreeTagger
我是编程新手,但我有Python3的基础知识,并且安装了treetagger,通过我的命令shell我可以创建POS标记文件 然而,我在一个文件夹中有427个文件,我正在尝试自动打开并通过Treetagger运行,我不太明白如何实现这一点。我目前的代码如下:Python 3.x 通过Python运行TreeTagger,python-3.x,treetagger,Python 3.x,Treetagger,我是编程新手,但我有Python3的基础知识,并且安装了treetagger,通过我的命令shell我可以创建POS标记文件 然而,我在一个文件夹中有427个文件,我正在尝试自动打开并通过Treetagger运行,我不太明白如何实现这一点。我目前的代码如下: import os import sys import subprocess import re rootdir = r"/Spanish_(ACTIV-es)_corpus/plain" 我想自动检查超过427个文件的文件夹,并对适当
import os
import sys
import subprocess
import re
rootdir = r"/Spanish_(ACTIV-es)_corpus/plain"
我想自动检查超过427个文件的文件夹,并对适当的文件进行POS标记
我认为这需要下面的代码和包括子流程命令的代码的组合,才能让TreeTagger完成它的工作,我完全不知道如何使用它,但我试图从这里关于堆栈溢出的另一个问题的反馈中实现它
如何使电影成为treetagger在浏览文件夹中的文件时将pos标记的文件
那么:输出??我是否需要已经为输出创建了427个单独的文件,或者是否有一种方法可以使输出成为输入的修改标题,从而不会混淆输出。(在文件标题中,是元数据当前存储的位置)。使用Python对文件进行标记是否有严格要求?如果没有,您可以使用shell轻松实现它,方法是在文件夹的文件上循环,在每个文件上运行TreeTagger,然后保存(正如您正确假设的那样)到具有不同名称的文件 例如,下面是一个包含3个文件的目录:
$ ls mydir/
1.txt 2.txt 3.txt
里面有一些西班牙文本
$ cat mydir/1.txt
Esto es una prueba.
然后您可以使用
find mydir/-name“*.txt”
查找的结果(使用反引号```),并在每个结果上运行TreeTagger的命令
$for“find…”中的i;do tag_命令_使用_$i;done
$i
)
)将TreeTagger的输出(您通常会在屏幕上看到)重定向到一个可以使用原始文件名正确命名的文件
tag_命令$i>$i.taged
$ for i in `find mydir/ -name "*.txt"`; do cat $i | cmd/tree-tagger-spanish > $i.tagged; done
完成后,新创建的文件将位于同一文件夹中:
$ ls mydir/
1.txt 1.txt.tagged 2.txt 2.txt.tagged 3.txt 3.txt.tagged
$ cat mydir/1.txt.tagged
Esto es ADV esto~es
una ART un
prueba NC prueba
. FS .