Apple NaturalLanguage framework from Python — powered by Swift & ApplePy
Project description
PyNatural
Apple NaturalLanguage framework from Python — powered by Swift & ApplePy.
Zero model downloads — uses Apple's built-in on-device NLP models.
macOS only — requires Swift 6.0+ toolchain
Install
pip install -e .
Usage
import pynatural
# Language detection (60+ languages)
pynatural.detect_language("Bonjour le monde") # "fr"
# Tokenization (handles CJK natively)
pynatural.tokenize("東京は美しい", "word") # ["東京", "は", "美しい"]
# POS tagging
pynatural.tag("The quick brown fox", "pos")
# ["The", "Determiner", "quick", "Adjective", ...]
# Named Entity Recognition
pynatural.tag("Tim Cook visited Apple Park", "ner")
# ["Tim", "PersonalName", "Cook", "PersonalName", ...]
# Sentiment analysis
pynatural.sentiment("This is amazing!") # ~0.8
# Word embeddings
pynatural.embedding_distance("dog", "cat", "en") # small distance
pynatural.find_similar("python", "en", 5) # {"snake": 0.3, ...}
API
| Function | Returns | Description |
|---|---|---|
detect_language(text) |
str |
ISO language code |
detect_languages(text, max_results=5) |
dict[str, float] |
Languages with confidence |
tokenize(text, unit="word") |
list[str] |
Tokenize (word/sentence/paragraph) |
tag(text, scheme="pos") |
list[str] |
POS/NER/lemma tags (alternating token/tag) |
sentiment(text) |
float |
Score from -1.0 to 1.0 |
embedding_distance(w1, w2, lang="en") |
float |
Semantic distance |
find_similar(word, lang="en", n=5) |
dict[str, float] |
Similar words with distance |
Examples
See pynatural/examples/demo.py for a full demo.
License
BSD-3-Clause © Jagtesh Chadha — see LICENSE.
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
pynatural-0.2.1.tar.gz
(8.7 kB
view details)
File details
Details for the file pynatural-0.2.1.tar.gz.
File metadata
- Download URL: pynatural-0.2.1.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b6657b6f1a51ee28ef96b51c0e2877494c7bc9e07ef68a7b5619b62608c60a5
|
|
| MD5 |
f83998906fde9c9bef5307d70aecbcd8
|
|
| BLAKE2b-256 |
ef4b6ff2f1cec726734f3a03cc084ac9ad310494d12940d1e5bbe0eea3a003fa
|