# neosca
**Repository Path**: King_Hello/neosca
## Basic Information
- **Project Name**: neosca
- **Description**: NeoSCA is another syntactic complexity analyzer of written English language samples.
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 8
- **Created**: 2022-11-30
- **Last Updated**: 2022-11-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

NeoSCA is a rewrite of
[Xiaofei Lu](http://personal.psu.edu/xxl13/index.html)'s
[L2 Syntactic Complexity Analyzer](http://personal.psu.edu/xxl13/downloads/l2sca.html),
supporting Windows, macOS, and Linux.
The same as L2SCA,
NeoSCA takes written English language
samples in plain text format as input, and computes:
the frequency of 9 structures in the text:
1. words (W)
2. sentences (S)
3. verb phrases (VP)
4. clauses (C)
5. T-units (T)
6. dependent clauses (DC)
7. complex T-units (CT)
8. coordinate phrases (CP)
9. complex nominals (CN), and
14 syntactic complexity indices of the text:
1. mean length of sentence (MLS)
2. mean length of T-unit (MLT)
3. mean length of clause (MLC)
4. clauses per sentence (C/S)
5. verb phrases per T-unit (VP/T)
6. clauses per T-unit (C/T)
7. dependent clauses per clause (DC/C)
8. dependent clauses per T-unit (DC/T)
9. T-units per sentence (T/S)
10. complex T-unit ratio (CT/T)
11. coordinate phrases per T-unit (CP/T)
12. coordinate phrases per clause (CP/C)
13. complex nominals per T-unit (CN/T)
14. complex nominals per clause (CP/C)
---
## Contents
* [NeoSCA vs. L2SCA](#neosca-vs-l2sca)
* [Installation](#installation)
* [Usage](#usage)
* [Citing](#citing)
* [License](#license)
---
## NeoSCA vs. L2SCA [Top ▲](#contents)
| L2SCA | NeoSCA |
|-|-|
| runs on macOS and Linux | runs on **Windows**, macOS, and Linux |
| single and multiple input are handled respectively by two commands | one command, `nsca`, for both cases, making your life easier |
| runs only under its own home directory | runs under any directory |
| outputs only frequencies of the "9+14" syntactic structures | add options to reserve intermediate results, i.e., Stanford Parser's parsing results and Tregex's querying results |
## Installation [Top ▲](#contents)
1. Install neosca
```sh
pip install neosca
```
For uers inside of China:
```
pip install neosca -i https://pypi.tuna.tsinghua.edu.cn/simple
```
2. Install [Java](https://www.java.com/en/download) 8 or later
3. Download and unzip latest versions of
[Stanford Parser](https://nlp.stanford.edu/software/lex-parser.shtml#Download) and
[Stanford Tregex](https://nlp.stanford.edu/software/tregex.html#Download)
4. Set `STANFORD_PARSER_HOME` and `STANFORD_TREGEX_HOME`
+ Windows:
In the Environment Variables window (press `Windows`+`s`, type *env*, and press `Enter`):
```
STANFORD_PARSER_HOME=\path\to\stanford-parser-full-2020-11-17
STANFORD_TREGEX_HOME=\path\to\stanford-tregex-2020-11-17
```
+ Linux/macOS:
```sh
export STANFORD_PARSER_HOME=/path/to/stanford-parser-full-2020-11-17
export STANFORD_TREGEX_HOME=/path/to/stanford-tregex-2020-11-17
```
## Usage [Top ▲](#contents)
The NeoSCA runs via the command `nsca`.
1. Single input:
```sh
nsca sample1.txt
# output will be saved in result.csv
nsca sample1.txt -o sample1.csv
# custom output file
```
2. Multiple input:
```sh
nsca sample1.txt sample2.txt
nsca sample*.txt
# wildcard characters are supported
nsca sample[1-10].txt
```
3. Use `-p/--reserve-parsed`
to reserve parsed files of Stanford Parser.
Use `-m/--reserve-match`
to reserve match results of Stanford Tregex.
```sh
nsca sample1.txt -p -m
```
4. Calling `nsca` without any arguments returns the help message.
## Citing [Top ▲](#contents)
Please use the following citation if you use NeoSCA in your work:
```BibTeX
@misc{tan2022neosca,
author = {Tan, Long},
title = {NeoSCA},
howpublished = {\url{https://github.com/tanloong/neosca}},
year = {2022}
}
```
Also, you need to cite Lu's article describing L2SCA:
```BibTeX
@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}
}
```
## License [Top ▲](#contents)
The same as L2SCA, NeoSCA is licensed under the GNU General Public License, version 2 or later.