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.3.0.tar.gz
(8.8 kB
view details)
File details
Details for the file pynatural-0.3.0.tar.gz.
File metadata
- Download URL: pynatural-0.3.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a9bfdcb3d89672c2c8aef504e700448e19539b43b075b19d103b3b5b44f8c13
|
|
| MD5 |
62d45d6a2bce7062f60b49abdded9c30
|
|
| BLAKE2b-256 |
8763fc7ddcc3ea002c162899d970c81d588b96b1d78a41d81acd45c3c7534e9f
|