书面英语样本的句法复杂度分析器
项目描述
NeoSCA
NeoSCA 是书面英语语言样本的句法复杂性分析器。它是对 陆晓飞的 L2 Syntactic Complexity Analyzer的重写,支持 Windows、macOS 和 Linux。
描述
与 L2SCA 一样,NeoSCA 以纯文本格式的书面英语语言样本作为输入,统计以下 9 个结构在文本中出现的频率:
- 单词(W)
- 句子 (S)
- 动词短语(VP)
- 条款 (C)
- T 单位 (T)
- 从属子句 (DC)
- 复杂的 T 单位 (CT)
- 并列短语 (CP)
- 复标称 (CN)
并计算文本的以下 14 个句法复杂度指数:
- 平均句子长度(MLS)
- T单位的平均长度(MLT)
- 子句平均长度 (MLC)
- 每句从句 (C/S)
- 每 T 单位的动词短语 (VP/T)
- 每 T 单位的条款 (C/T)
- 每个子句的从属子句 (DC/C)
- 每个 T 单元的从属子句 (DC/T)
- 每句 T 单位 (T/S)
- 复数 T 单位比 (CT/T)
- 每 T 单位的坐标短语 (CP/T)
- 每个子句的协调短语 (CP/C)
- 每 T 单位的复标称 (CN/T)
- 每个子句的复杂名词 (CP/C)
比较
L2SCA | NeoSCA |
---|---|
在 macOS 和 Linux 上运行 | 在Windows、macOS 和 Linux上运行 |
单输入和多输入分别由两个命令处理 | 两种情况下的一个命令,让您的生活更轻松 |
仅在其自己的主目录下运行 | 在任何目录下运行 |
仅输出“9+14”句法结构的频率 | 添加保留中间结果的选项,即Stanford Parser的解析结果,Tregex的查询结果 |
用法
- 单输入:
nsca sample1.txt
# output will be saved in result.csv
nsca sample1.txt -o sample1.csv
# custom output file
- 多输入:
nsca sample1.txt sample2.txt
nsca sample*.txt
# wildcard characters are also supported
nsca sample[1-10].txt
- 使用
-p
/--reserve-parsed
保留 Stanford Parser 的解析文件。使用-m
/--reserve-match
保留 Stanford Tregex 的匹配结果。
nsca sample1.txt -p -m
安装
- 安装neosca
pip install neosca
-
安装Java 8 或更高版本
-
下载最新版本的 斯坦福解析器和 斯坦福 Tregex
-
设置
STANFORD_PARSER_HOME
和STANFORD_TREGEX_HOME
- 视窗:
在环境变量窗口中(按Windows
+ s
,键入env,然后按Enter
):
STANFORD_PARSER_HOME=\path\to\stanford-parser-full-2020-11-17
STANFORD_TREGEX_HOME=\path\to\stanford-tregex-2020-11-17
- Linux/macOS:
export STANFORD_PARSER_HOME=/path/to/stanford-parser-full-2020-11-17
export STANFORD_TREGEX_HOME=/path/to/stanford-tregex-2020-11-17
在引擎盖下
NeoSCA 作为 Stanford Parser 和 Stanford Tregex 的包装器,L2SCA 也是如此。如果您不熟悉这两个依赖项,下面是一些简单的示例。详细解释可以在《 语料库注释和分析的计算方法》(Lu,2014)一书中找到。
- 斯坦福解析器
假设您有一个名为的文件sample.txt
,其中包含一个句子:
This is an example.
这个命令:
java -mx1500m -cp "/path/to/stanford-parser-full-2020-11-17/*" edu.stanford.nlp.parser.lexparser.LexicalizedParser -outputFormat penn edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz /path/to/sample.txt
给出短语结构树:
(ROOT
(S
(NP (DT This))
(VP (VBZ is)
(NP (DT an) (NN example)))
(. .)))
树可以如下可视化,去掉引号。
在这棵树中,起始符号是树根级别的标签“ROOT”,4 个终止符号是句子中的 4 个单词,位于树的分支的底部。非终结符号位于起始符号和终结符号之间,包括许多用于不同分句、短语和词汇类别的标签。例如,非终结符号“NP”表示短语类别“名词短语”。
在解析输入文件时,NeoSCA 运行上述命令,如果您指定了-p
选项,则将短语结构树保存在具有.parsed
扩展名的文件中。
- 斯坦福正则表达式
Tregex 针对由 Stanford Parser 生成的短语结构树查询类似正则表达式的模式,称为 Tregex 模式。
假设 asample.parsed
有:
(ROOT
(S
(NP (DT This))
(VP (VBZ is)
(NP (DT an) (NN example)))
(. .)))
这个命令:
java -mx100m -cp "/path/to/stanford-tregex-2020-11-17/stanford-tregex.jar" edu.stanford.nlp.trees.tregex.TregexPattern "NP" sample.parsed -o
给
Pattern string:
NP
Parsed representation:
Root NP
Reading trees from file(s) sample.parsed
(NP (DT This))
(NP (DT an) (NN example))
There were 2 matches in total.
在查询解析文件时,NeoSCA 运行上述命令并记住每个预先指定的 Tregex 模式的匹配数。
如果您指定了该-m
选项,它还会将匹配项(NP
在我们的示例中为两个 s)保存在.matches
扩展名为的文件中。
引用
如果您在工作中使用 NeoSCA,请使用以下引用:
@misc{tan2022neosca,
author = {Tan, Long},
title = {NeoSCA},
howpublished = {\url{https://github.com/tanloong/neosca}},
year = {2022}
}
另外,你需要引用 Lu 描述 L2SCA 的文章:
@article{lu2010automatic,
title={Automatic analysis of syntactic complexity in second language writing},
author={Lu, Xiaofei},
journal={International journal of corpus linguistics},
volume={15},
number={4},
pages={474--496},
year={2010},
publisher={John Benjamins}
}
执照
与 L2SCA 一样,NeoSCA 是根据 GNU 通用公共许可证第 2 版或更高版本获得许可的。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。