Skip to main content

A package for quantitative syntax analysis

Project description

QuanSyn

QuanSyn:A python package for quantitative syntax analysis.

PyPI version Build Status License

Description

QuanSyn is a Python package for Quantitative Linguistics. It provides functionality to quantify linguistic structures and explore language patterns.

This package is consisted of three main parts:

  • depval.py: some indicators about dependency structures and valency structures.
  • lawfitter.py: a small fitter for some laws in QL.
  • lingnet.py: a module for complex network construction.

Installation

You can install QuanSyn via pip:

pip install quansyn

nltk and conllu are required.

pip install nltk conllu

Quick Start

Here's a simple example of how to use QuanSyn:

1. depval

from quansyn.depval import DepValAnalyzer   
data = open(r'your_treebank.conllu',encoding='utf-8')
dv = DependencyAnalyzer(data) 

# dependency distance distribution
dv.dd_distribution()
# mean dependency distance of specific wordclasses
dv.mdd(pos='NOUN')
# mean dependency distance of specific dependency relations
dv.mdd(dependency='nsubj')
# proportion of dependency distance
dv.pdd()
# tree width and tree depth
dv.tree()
# tree width distirbution and tree depth distribution
dv.tree_distribution()

# mean valency
dv.mean_valency()
# valency distribution
dv.valency_distribution()
# probalistic valency pattern 
dv.pvp()

or:

dv = getDepValFeatures(data)
print(dv)

2. lawfitter

from quansyn.lawfitter import fit   
#results = fit(data,model,variant)
results = fit([[1,2,3,4,5,6],[3,4,2,6,8,15]],'zipf')
print(resluts)

3. lingnet

from quansyn.lingnet import conllu2edge
import networkx as nx   
# use a conllu file to construction a network
data = open(r'your_treebank.conllu',encoding='utf-8')
edges = conllu2edge(data,mode='dependency')
# or to construct a co-occurance network 
#edges = conllu2edge(data,mode='adjacency')
G = nx.Graph()
G.add_edges_from(edges)

# to estimate the degree exponents
degree =[i[1] for i in G.degree()]
degree_exponents = fitPowerLaw(degree)
print(degree_exponents)

Documentation

For more detailed information, please refer to the video (in Chinese).

Features

  • Dependency distance distribution
  • Mean dependency distance of specific wordclasses
  • Mean dependency distance of specific dependency relations
  • Proportion of dependency distance
  • Tree width and tree depth
  • Tree width distribution and tree depth distribution
  • Mean valency
  • Valency distribution
  • Probabilistic valency pattern
  • Law fitter
  • Complex network construction

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Citing

If our project has been helpful to you, please give it a star and cite our articles. We would be very grateful.

@article{Yang_2022,
doi = {10.1209/0295-5075/ac8bf2},
url = {https://dx.doi.org/10.1209/0295-5075/ac8bf2},
year = {2022},
month = {sep},
publisher = {EDP Sciences, IOP Publishing and Società Italiana di Fisica},
volume = {139},
number = {6},
pages = {61002},
author = {Mu Yang and Haitao Liu},
title = {The role of syntax in the formation of scale-free language networks},
journal = {Europhysics Letters},
abstract = {The overall structure of a network is determined by its micro features, which are different in both syntactic and non-syntactic networks. However, the fact that most language networks are small-world and scale-free raises the question: does syntax play a role in forming the scale-free feature? To answer this question, we build syntactic networks and co-occurrence networks to compare the generation mechanisms of nodes, and to investigate whether syntactic and non-syntactic factors have distinct roles. The results show that frequency is the foundation of the scale-free feature, while syntax is beneficial to enhance this feature. This research introduces a microscopic approach, which may shed light on the scale-free feature of language networks.}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quansyn-0.0.2.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

quansyn-0.0.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file quansyn-0.0.2.tar.gz.

File metadata

  • Download URL: quansyn-0.0.2.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for quansyn-0.0.2.tar.gz
Algorithm Hash digest
SHA256 457a852ffded290381e8df88416401717ae30d51ef0279e5b20ec1446f0f0ecb
MD5 bac046e0c0c2857573716edf82404693
BLAKE2b-256 58509c56046e91d0f6e66e62ee41ff5eb58af3cf18a45c957ac3d467d1e7a7b9

See more details on using hashes here.

File details

Details for the file quansyn-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: quansyn-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for quansyn-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bbd8f6d029854882fd5d59d1091bb434cad6fea0a5c2e8d56cc6b63291dfc563
MD5 c1b98f9b1c5a06e5510facc4675cd23d
BLAKE2b-256 df97302c108ff62887a7b38bc441e5677ed76b417f0c6947b792888ab0bcf244

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page