Skip to content

Parsimmon is a wee linguistics toolkit for iOS written in Swift.

License

Notifications You must be signed in to change notification settings

ayanonagon/Parsimmon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

505eda7 · Jun 17, 2016
Nov 26, 2015
Jun 17, 2016
Apr 8, 2015
Jun 17, 2016
Jun 17, 2016
Oct 11, 2013
Jun 17, 2016
Apr 8, 2015
Apr 8, 2015
Feb 10, 2016
Apr 8, 2015
Nov 26, 2015
Nov 26, 2015

Repository files navigation

Parsimmon

Build Status

Parsimmon is a wee linguistics toolkit for iOS written in Swift.

We currently support Swift 2.0. If you are looking for Objective-C, please use version 0.3.4 or earlier.

Toolkit

Currently available tools:

  • Tokenizer
  • Tagger
  • Lemmatizer
  • Naive Bayes Classifier
  • Decision Tree (alpha)

Installation

The easiest way to get started is to use CocoaPods version 0.36 or higher. Just add the following line to your Podfile:

pod 'Parsimmon', '~> 0.5.0'

Examples

To start using Parsimmon:

import Parsimmon

Tokenizer

let tokenizer = Tokenizer()
let tokens = tokenizer.tokenize("The quick brown fox jumps over the lazy dog")
print(tokens)
(
The,
quick,
brown,
fox,
jumps,
over,
the,
lazy,
dog
)

Tagger

let tagger = Tagger()
let taggedTokens = tagger.tagWordsInText("The quick brown fox jumps over the lazy dog")
print(taggedTokens)
(
"('The', Determiner)",
"('quick', Adjective)",
"('brown', Adjective)",
"('fox', Noun)",
"('jumps', Noun)",
"('over', Preposition)",
"('the', Determiner)",
"('lazy', Adjective)",
"('dog', Noun)"
)

Lemmatizer

let lemmatizer = Lemmatizer()
let lemmatizedTokens = lemmatizer.lemmatizeWordsInText("Diane, I'm holding in my hand a small box of chocolate bunnies.")
print(lemmatizedTokens)
(
diane,
i,
hold,
in,
my,
hand,
a,
small,
box,
of,
chocolate,
bunny
)

Naive Bayes Classifier

let classifier = NaiveBayesClassifier()

// Train the classifier with some ham examples.
classifier.trainWithText("nom nom ham", category: "ham")
classifier.trainWithText("make sure to get the ham", category: "ham")
classifier.trainWithText("please put the eggs in the fridge", category: "ham")

// Train the classifier with some spam examples.
classifier.trainWithText("spammy spam spam", category: "spam")
classifier.trainWithText("what does the fox say?", category: "spam")
classifier.trainWithText("and fish go blub", category: "spam")

// Classify some new text. Is it ham or spam?
// In practice, you'd want to train with more examples first.
let firstExample = "use the eggs in the fridge."
let secondExample = "what does the fish say?"

print("\(firstExample) => \(classifier.classify(firstExample))")
print("\(secondExample) => \(classifier.classify(secondExample))")
'use the eggs in the fridge.' => ham
'what does the fish say?' => spam

License

MIT

Contributing

We’d love to see your ideas for improving this library! The best way to contribute is by submitting a pull request. We’ll do our best to respond to your patch as soon as possible. You can also submit a new GitHub issue if you find bugs or have questions. :octocat:

Please make sure to follow our general coding style and add test coverage for new features!

About

Parsimmon is a wee linguistics toolkit for iOS written in Swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published