CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

Parsimmon 0.5.0

Parsimmon 0.5.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Nov 2015
SPMSupports SPM

Maintained by Ayaka Nonaka.



Parsimmon 0.5.0

  • By
  • Ayaka Nonaka

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

We currently support Swift 1.2. 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.4.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")
println(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")
println(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.")
println(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?"

println("\(firstExample) => \(classifier.classify(firstExample))")
println("\(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!