PyCantonese: Cantonese Linguistics and NLP in Python
Project description
Full Documentation: https://pycantonese.org
PyCantonese is a Python library for Cantonese linguistics and natural language processing (NLP). Currently implemented features (more to come!):
Accessing and searching corpus data
Parsing and conversion tools for Jyutping romanization
Stop words
Word segmentation
Part-of-speech tagging
Quick Examples
With PyCantonese imported:
>>> import pycantonese as pc
Word segmentation
>>> pc.segment("廣東話好難學?") # Is Cantonese difficult to learn?
['廣東話', '好', '難', '學', '?']
Conversion from Cantonese characters to Jyutping
>>> pc.characters_to_jyutping('香港人講廣東話') # Hongkongers speak Cantonese
[("香港人", "hoeng1gong2jan4"), ("講", "gong2"), ("廣東話", "gwong2dung1waa2")]
Finding all verbs in the HKCanCor corpus
In this example, we search for the regular expression '^V' for all words whose part-of-speech tag begins with “V” in the original HKCanCor annotations:
>>> corpus = pc.hkcancor() # get HKCanCor
>>> all_verbs = corpus.search(pos='^V')
>>> len(all_verbs) # number of all verbs
29012
>>> from pprint import pprint
>>> pprint(all_verbs[:10]) # print 10 results
[('去', 'V', 'heoi3', ''),
('去', 'V', 'heoi3', ''),
('旅行', 'VN', 'leoi5hang4', ''),
('有冇', 'V1', 'jau5mou5', ''),
('要', 'VU', 'jiu3', ''),
('有得', 'VU', 'jau5dak1', ''),
('冇得', 'VU', 'mou5dak1', ''),
('去', 'V', 'heoi3', ''),
('係', 'V', 'hai6', ''),
('係', 'V', 'hai6', '')]
Parsing Jyutping for (onset, nucleus, coda, tone)
>>> pc.parse_jyutping('gwong2dung1waa2') # 廣東話
[('gw', 'o', 'ng', '2'), ('d', 'u', 'ng', '1'), ('w', 'aa', '', '2')]
Download and Install
PyCantonese requires Python 3.6 or above. To download and install the stable, most recent version:
$ pip install --upgrade pycantonese
To test your installation in the Python interpreter:
>>> import pycantonese as pc
>>> pc.__version__ # show version number
Links
Source code: https://github.com/jacksonllee/pycantonese
Bug tracker, feature requests: https://github.com/jacksonllee/pycantonese/issues
Email: Please contact Jackson Lee.
Social media: Updates, tips, and more are posted on the Facebook page below.
How to Cite
PyCantonese is authored and mainteined by Jackson L. Lee.
A talk introducing PyCantonese:
Lee, Jackson L. 2015. PyCantonese: Cantonese linguistic research in the age of big data. Talk at the Childhood Bilingualism Research Centre, Chinese University of Hong Kong. September 15. 2015. Notes+slides
License
MIT License. Please see LICENSE.txt in the GitHub source code for details.
The HKCanCor dataset included in PyCantonese is substantially modified from its source in terms of format. The original dataset has a CC BY license. Please see pycantonese/data/hkcancor/README.md in the GitHub source code for details.
The rime-cantonese data (release 2020.09.09) is incorporated into PyCantonese for word segmentation and characters-to-Jyutping conversion. This data has a CC BY 4.0 license. Please see pycantonese/data/rime_cantonese/README.md in the GitHub source code for details.
Logo
The PyCantonese logo is the Chinese character 粵 meaning Cantonese, with artistic design by albino.snowman (Instagram handle).
Acknowledgments
Individuals who have contributed feedback, bug reports, etc. (in alphabetical order of last names if known):
@cathug
Litong Chen
@g-traveller
Rachel Han
Ryan Lai
Charles Lam
Hill Ma
@richielo
@rylanchiu
Stephan Stiller
Tsz-Him Tsui
Changelog
Please see CHANGELOG.md.
Setting up a Development Environment
The latest code under development is available on Github at jacksonllee/pycantonese. You need to have Git LFS installed on your system. To obtain this version for experimental features or for development:
$ git clone https://github.com/jacksonllee/pycantonese.git
$ cd pycantonese
$ git lfs pull
$ pip install -r dev-requirements.txt
$ pip install -e .
To run tests and styling checks:
$ pytest -vv --doctest-modules --cov=pycantonese pycantonese docs
$ flake8 pycantonese
$ black --check --line-length=79 pycantonese
To build the documentation website files:
$ python build_docs.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pycantonese-3.1.0.dev3.tar.gz
.
File metadata
- Download URL: pycantonese-3.1.0.dev3.tar.gz
- Upload date:
- Size: 3.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a7613529f8049ae3a1dde866682d4ac64479aeb95de0fe6bd7a8d5f5552a75d |
|
MD5 | 914423c23cb1e86dc644823d80601585 |
|
BLAKE2b-256 | 5907af0eb4cd1a25b3eb9123ff68188bb6372739c8c392f83c6a14db2318d57d |
File details
Details for the file pycantonese-3.1.0.dev3-py3-none-any.whl
.
File metadata
- Download URL: pycantonese-3.1.0.dev3-py3-none-any.whl
- Upload date:
- Size: 3.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 752687bad8c86205dfef26356b5f4a12ca3dd3970e3be395ffb2b88f2b1c0962 |
|
MD5 | db8981539181a3b2ccd038752d9affe6 |
|
BLAKE2b-256 | 71ea337d0a29f0da50f2944d1e615bd8cb61c0f324b820097711efd28a5f0411 |