私はNSLinguisticTaggerをいじっています。
名詞、動詞、前置詞などの基本的な単語の種類を識別することは非常にうまく機能します。
ただし、人の名前NSLinguisticTagPersonalNameの認識は、私のテスト (iOS8) ではほとんど機能しません。場所NSLinguisticTagPlaceNameもかなりうまく機能しているようですが、ほとんどの場合、人名も場所として分類されます。
これが私の基本的なセットアップです(NSLinguisticTagSchemeNameTypeOrLexicalClassを使用)
var tagger:NSLinguisticTagger = NSLinguisticTagger(tagSchemes: NSLinguisticTagger.availableTagSchemesForLanguage("en") , options: 3)
tagger.string = entryString
tagger.enumerateTagsInRange(NSMakeRange(0, entryString.length), scheme: NSLinguisticTagSchemeNameTypeOrLexicalClass, options: (NSLinguisticTaggerOptions.OmitWhitespace | NSLinguisticTaggerOptions.JoinNames), usingBlock: {
tag,tokenRange,sentenceRange,_ in
let token = entryString.substringWithRange(tokenRange)
println("[\(tag)] \(token) \(tokenRange)")
例 1
"Meeting with John in Paris"
Evaluation
[Verb] Meeting
[Preposition] with
[Noun] John
[Preposition] in
[PlaceName] Paris
例 2
"Meeting with John"
Evaluation
[Verb] Meeting (0,7)
[Preposition] with (8,4)
[PlaceName] John (13,4)
人名の一致を改善する方法はありますか?
また、認識されるために名前がどのように表示される必要があるかを知りたいです。(たとえば、"with" のような前置詞が良い指標になると思いましたが、明らかにこれでは十分ではありません)。これに関するアイデアや追加の洞察をいただければ幸いです。刺激的な分野です。