[naturallanguage] Update for Xcode 11 beta 1 (#6741)

No change in beta 2 to 5

* Run EmbeddingTest.Vector test on iOS and macOS only

reference: rdar 44948030

> Engineering has the following feedback for you: The tagging
> depends on the NLP assets being present on the device. The
> assets get downloaded through OTA. OTA download for NLP assets
> does not exist on watchOS and tvOS currently…only on iOS and
> macOS. It is conceivable that the assets got downloaded when you
> were on WiFi at a later point. So, the tagging should work.
This commit is contained in:
Sebastien Pouliot 2019-08-12 11:07:15 -04:00 коммит произвёл GitHub
Родитель 38e1d05d68
Коммит 61c8af15d1
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
12 изменённых файлов: 434 добавлений и 154 удалений

Просмотреть файл

@ -1,4 +1,4 @@
// Copyright 2018, Microsoft Corp.
// Copyright 2018-2019 Microsoft Corp.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@ -201,5 +201,8 @@ namespace NaturalLanguage {
Language,
[Field ("NLTagSchemeScript")]
Script,
[iOS (13,0), Mac (10,15), TV (13,0), Watch (6,0)]
[Field ("NLTagSchemeSentimentScore")]
SentimentScore,
}
}

Просмотреть файл

@ -0,0 +1,22 @@
using System;
using CoreFoundation;
using Foundation;
namespace NaturalLanguage {
public partial class NLEmbedding {
unsafe public bool TryGetVector (string @string, out float[] vector)
{
var result = false;
vector = new float [Dimension];
fixed (float *ptr = vector) {
result = GetVector ((IntPtr) ptr, @string);
}
if (!result)
vector = null; // to be consistent with GetVector API
return result;
}
}
}

Просмотреть файл

@ -0,0 +1,43 @@
using System;
using CoreFoundation;
using Foundation;
namespace NaturalLanguage {
// nicer replacement for `NSDictionary<NSString, NSArray<NSString>>`
public class NLStrongDictionary : DictionaryContainer {
#if !COREBUILD
public NLStrongDictionary ()
{
}
public NLStrongDictionary (NSDictionary dictionary) : base (dictionary)
{
}
public string[] this [NSString key] {
get {
if (key == null)
throw new ArgumentNullException (nameof (key));
var value = CFDictionary.GetValue (Dictionary.Handle, key.Handle);
return NSArray.StringArrayFromHandle (value);
}
set {
SetArrayValue (key, value);
}
}
public string[] this [string key] {
get {
return this [(NSString) key];
}
set {
SetArrayValue ((NSString) key, value);
}
}
#endif
}
}

Просмотреть файл

@ -0,0 +1,51 @@
using System;
using CoreFoundation;
using Foundation;
namespace NaturalLanguage {
// nicer replacement for `NSDictionary<NSString, NSArray<NSNumber>>`
public class NLVectorDictionary : DictionaryContainer {
#if !COREBUILD
public NLVectorDictionary ()
{
}
public NLVectorDictionary (NSDictionary dictionary) : base (dictionary)
{
}
public float[] this [NSString key] {
get {
if (key == null)
throw new ArgumentNullException (nameof (key));
var a = CFDictionary.GetValue (Dictionary.Handle, key.Handle);
return NSArray.ArrayFromHandle<float> (a, input => {
return new NSNumber (input).FloatValue;
});
}
set {
if (key == null)
throw new ArgumentNullException (nameof (key));
if (value == null)
RemoveValue (key);
else
Dictionary [key] = NSArray.From (value);
}
}
public float[] this [string key] {
get {
return this [(NSString) key];
}
set {
this [(NSString) key] = value;
}
}
#endif
}
}

Просмотреть файл

@ -1133,7 +1133,12 @@ MULTIPEERCONNECTIVITY_SOURCES = \
NATURALLANGUAGE_API_SOURCES = \
NaturalLanguage/Enums.cs \
NATURALLANGUAGE_CORE_SOURCES = \
NaturalLanguage/NLStrongDictionary.cs \
NaturalLanguage/NLVectorDictionary.cs \
NATURALLANGUAGE_SOURCES = \
NaturalLanguage/NLEmbedding.cs \
NaturalLanguage/NLLanguageRecognizer.cs \
# Network

Просмотреть файл

@ -1,4 +1,4 @@
// Copyright 2018, Microsoft, Corp.
// Copyright 2018-2019 Microsoft, Corp.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@ -251,6 +251,37 @@ namespace NaturalLanguage {
[Wrap ("GetModels (tagScheme.GetConstant ())")]
NLModel[] GetModels (NLTagScheme tagScheme);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("setGazetteers:forTagScheme:")]
void SetGazetteers (NLGazetteer[] gazetteers, NSString tagScheme);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Wrap ("SetGazetteers (gazetteers, tagScheme.GetConstant ())")]
void SetGazetteers (NLGazetteer[] gazetteers, NLTagScheme tagScheme);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("gazetteersForTagScheme:")]
NLGazetteer[] GetGazetteers (NSString tagScheme);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Wrap ("GetGazetteers (tagScheme.GetConstant ())")]
NLGazetteer[] GetGazetteers (NLTagScheme tagScheme);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Async]
[Export ("requestAssetsForLanguage:tagScheme:completionHandler:")]
void RequestAssets (NSString language, NSString tagScheme, Action<NLTaggerAssetsResult, NSError> completionHandler);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Static]
[Async]
[Wrap ("RequestAssets (language.GetConstant (), tagScheme.GetConstant (), completionHandler)")]
void RequestAssets (NLLanguage language, NLTagScheme tagScheme, Action<NLTaggerAssetsResult, NSError> completionHandler);
}
[iOS (12,0), Mac (10,14), TV (12,0), Watch (5,0)]
@ -319,4 +350,184 @@ namespace NaturalLanguage {
[Field ("NLTagOrganizationName")]
NSString OrganizationName { get; }
}
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Native]
enum NLDistanceType : long {
Cosine,
}
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[Native]
enum NLTaggerAssetsResult : long {
Available,
NotAvailable,
Error,
}
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
delegate void NLEnumerateNeighborsHandler (string neighbor, /* NLDistance */ double distance, ref bool stop);
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface NLEmbedding {
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("wordEmbeddingForLanguage:")]
[return: NullAllowed]
NLEmbedding GetWordEmbedding (NSString language);
[Static]
[Wrap ("GetWordEmbedding (language.GetConstant ())")]
[return: NullAllowed]
NLEmbedding GetWordEmbedding (NLLanguage language);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("wordEmbeddingForLanguage:revision:")]
[return: NullAllowed]
NLEmbedding GetWordEmbedding (NSString language, nuint revision);
[Static]
[Wrap ("GetWordEmbedding (language.GetConstant ())")]
[return: NullAllowed]
NLEmbedding GetWordEmbedding (NLLanguage language, nuint revision);
[Static]
[Export ("embeddingWithContentsOfURL:error:")]
[return: NullAllowed]
NLEmbedding GetEmbedding (NSUrl url, [NullAllowed] out NSError error);
[Export ("containsString:")]
bool Contains (string @string);
[Export ("distanceBetweenString:andString:distanceType:")]
double GetDistance (string firstString, string secondString, NLDistanceType distanceType);
[Export ("enumerateNeighborsForString:maximumCount:distanceType:usingBlock:")]
void EnumerateNeighbors (string @string, nuint maxCount, NLDistanceType distanceType, NLEnumerateNeighborsHandler handler);
[Export ("enumerateNeighborsForString:maximumCount:maximumDistance:distanceType:usingBlock:")]
void EnumerateNeighbors (string @string, nuint maxCount, double maxDistance, NLDistanceType distanceType, NLEnumerateNeighborsHandler handler);
[Export ("neighborsForString:maximumCount:distanceType:")]
[return: NullAllowed]
string[] GetNeighbors (string @string, nuint maxCount, NLDistanceType distanceType);
[Export ("neighborsForString:maximumCount:maximumDistance:distanceType:")]
[return: NullAllowed]
string[] GetNeighbors (string @string, nuint maxCount, double maxDistance, NLDistanceType distanceType);
[Export ("vectorForString:")]
[return: NullAllowed]
[return: BindAs (typeof (float[]))] // doc says "array of double" but other API uses float ?!?
NSNumber[] GetVector (string @string);
[Internal] // can't bind float[] without NSArray but it will be better bound using .net pattern `bool TryGetVector (string, out float[] vector)`
[Export ("getVector:forString:")]
bool GetVector (IntPtr /* float[] */ vector, string @string);
[Export ("enumerateNeighborsForVector:maximumCount:distanceType:usingBlock:")]
void EnumerateNeighbors ([BindAs (typeof (float[]))] NSNumber[] vector, nuint maxCount, NLDistanceType distanceType, NLEnumerateNeighborsHandler handler);
[Export ("enumerateNeighborsForVector:maximumCount:maximumDistance:distanceType:usingBlock:")]
void EnumerateNeighbors ([BindAs (typeof (float[]))] NSNumber[] vector, nuint maxCount, double maxDistance, NLDistanceType distanceType, NLEnumerateNeighborsHandler handler);
[Export ("neighborsForVector:maximumCount:distanceType:")]
string[] GetNeighbors ([BindAs (typeof (float[]))] NSNumber[] vector, nuint maxCount, NLDistanceType distanceType);
[Export ("neighborsForVector:maximumCount:maximumDistance:distanceType:")]
string[] GetNeighbors ([BindAs (typeof (float[]))] NSNumber[] vector, nuint maxCount, double maxDistance, NLDistanceType distanceType);
[Export ("dimension")]
nuint Dimension { get; }
[Export ("vocabularySize")]
nuint VocabularySize { get; }
[NullAllowed, Export ("language")]
[BindAs (typeof (NLLanguage?))]
NSString Language { get; }
[Export ("revision")]
nuint Revision { get; }
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("supportedRevisionsForLanguage:")]
NSIndexSet GetSupportedRevisions (NSString language);
[Static]
[Wrap ("GetSupportedRevisions (language.GetConstant ())")]
NSIndexSet GetSupportedRevisions (NLLanguage language);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("currentRevisionForLanguage:")]
nuint GetCurrentRevision (NSString language);
[Static]
[Wrap ("GetCurrentRevision (language.GetConstant ())")]
nuint GetCurrentRevision (NLLanguage language);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("writeEmbeddingForDictionary:language:revision:toURL:error:")]
bool Write (NSDictionary dictionary, [NullAllowed] NSString language, nuint revision, NSUrl url, [NullAllowed] out NSError error);
[Static]
[Wrap ("Write (dictionary.GetDictionary (), language.HasValue ? language.Value.GetConstant () : null, revision, url, out error)")]
bool Write (NLVectorDictionary dictionary, NLLanguage? language, nuint revision, NSUrl url, [NullAllowed] out NSError error);
}
[Watch (6,0), TV (13,0), Mac (10,15), iOS (13,0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface NLGazetteer {
[Static]
[Export ("gazetteerWithContentsOfURL:error:")]
[return: NullAllowed]
NLGazetteer Create (NSUrl url, [NullAllowed] out NSError error);
[Export ("initWithContentsOfURL:error:")]
[DesignatedInitializer]
IntPtr Constructor (NSUrl url, [NullAllowed] out NSError error);
[Export ("initWithData:error:")]
[DesignatedInitializer]
IntPtr Constructor (NSData data, [NullAllowed] out NSError error);
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Export ("initWithDictionary:language:error:")]
[DesignatedInitializer]
IntPtr Constructor (NSDictionary dictionary, [NullAllowed] NSString language, [NullAllowed] out NSError error);
// sadly `language?.GetConstant ()` does not cut it :(
// error CS1929: 'NLLanguage?' does not contain a definition for 'GetConstant' and the best extension method overload 'NLLanguageExtensions.GetConstant(NLLanguage)' requires a receiver of type 'NLLanguage'
[Wrap ("this (dictionary.GetDictionary (), language.HasValue ? language.Value.GetConstant () : null, out error)")]
IntPtr Constructor (NLStrongDictionary dictionary, NLLanguage? language, [NullAllowed] out NSError error);
[Export ("labelForString:")]
[return: NullAllowed]
string GetLabel (string @string);
[NullAllowed, Export ("language")]
[BindAs (typeof (NLLanguage?))]
NSString Language { get; }
[Export ("data", ArgumentSemantic.Copy)]
NSData Data { get; }
[EditorBrowsable (EditorBrowsableState.Advanced)]
[Static]
[Export ("writeGazetteerForDictionary:language:toURL:error:")]
bool Write (NSDictionary dictionary, [NullAllowed] NSString language, NSUrl url, [NullAllowed] out NSError error);
[Static]
[Wrap ("Write (dictionary.GetDictionary (), language.HasValue ? language.Value.GetConstant () : null, url, out error)")]
bool Write (NLStrongDictionary dictionary, NLLanguage? language, NSUrl url, [NullAllowed] out NSError error);
}
}

Просмотреть файл

@ -0,0 +1,58 @@
//
// Unit tests for NLEmbedding
//
// Copyright 2019 Microsoft Corp. All rights reserved.
//
using System;
using System.IO;
using Foundation;
using NaturalLanguage;
using NUnit.Framework;
namespace MonoTouchFixtures.NaturalLanguage {
[TestFixture]
[Preserve (AllMembers = true)]
public class EmbeddingTest {
#if __IOS__ || __MACOS__
[Test]
public void Vector ()
{
TestRuntime.AssertXcodeVersion (11, 0);
using (var e = NLEmbedding.GetWordEmbedding (NLLanguage.English)) {
Assert.NotNull (e, "GetWordEmbedding");
Assert.Null (e.GetVector ("Xamarin"), "GetVector");
Assert.False (e.TryGetVector ("Xamarin", out var vector), "TryGetVector");
Assert.Null (vector, "vector");
}
}
#endif
[Test]
public void Write ()
{
TestRuntime.AssertXcodeVersion (11, 0);
var temp = Path.Combine (Path.GetTempPath (), "NLEmbedding.Test");
File.Delete (temp);
var vd = new NLVectorDictionary ();
vd ["a"] = new [] { 0.7f, 1.0f };
var wd = vd.Dictionary;
Assert.That (wd.Count, Is.EqualTo (1), "Count");
using (var url = NSUrl.FromFilename (temp)) {
var strong = NLEmbedding.Write (vd, NLLanguage.French, 1, url, out var error);
Assert.True (strong, "strong");
Assert.Null (error, "strong error");
var weak = NLEmbedding.Write (wd, NLLanguage.French.GetConstant (), 1, url, out error);
Assert.True (strong, "strong");
Assert.Null (error, "weak error");
}
}
}
}

Просмотреть файл

@ -0,0 +1,39 @@
//
// Unit tests for NLGazetteer
//
// Copyright 2019 Microsoft Corp. All rights reserved.
//
using System;
using Foundation;
using NaturalLanguage;
using NUnit.Framework;
namespace MonoTouchFixtures.NaturalLanguage {
[TestFixture]
[Preserve (AllMembers = true)]
public class GazetteerTest {
[Test]
public void Dictionary ()
{
TestRuntime.AssertXcodeVersion (11, 0);
var sd = new NLStrongDictionary ();
sd ["a"] = new [] { "Allo" };
sd [new NSString ("b")] = new [] { "Bonjour" };
var wd = sd.Dictionary;
Assert.That (wd.Count, Is.EqualTo (2), "Count");
using (var weak = new NLGazetteer (wd, NLLanguage.French.GetConstant (), out var error)) {
Assert.Null (error, "weak error");
}
using (var strong = new NLGazetteer (sd, NLLanguage.French, out var error)) {
Assert.Null (error, "strong error");
}
}
}
}

Просмотреть файл

@ -1,38 +0,0 @@
!missing-enum! NLDistanceType not bound
!missing-enum! NLTaggerAssetsResult not bound
!missing-field! NLTagSchemeSentimentScore not bound
!missing-selector! +NLEmbedding::currentRevisionForLanguage: not bound
!missing-selector! +NLEmbedding::embeddingWithContentsOfURL:error: not bound
!missing-selector! +NLEmbedding::supportedRevisionsForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage:revision: not bound
!missing-selector! +NLEmbedding::writeEmbeddingForDictionary:language:revision:toURL:error: not bound
!missing-selector! +NLGazetteer::gazetteerWithContentsOfURL:error: not bound
!missing-selector! +NLGazetteer::writeGazetteerForDictionary:language:toURL:error: not bound
!missing-selector! +NLTagger::requestAssetsForLanguage:tagScheme:completionHandler: not bound
!missing-selector! NLEmbedding::containsString: not bound
!missing-selector! NLEmbedding::dimension not bound
!missing-selector! NLEmbedding::distanceBetweenString:andString:distanceType: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::getVector:forString: not bound
!missing-selector! NLEmbedding::language not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::revision not bound
!missing-selector! NLEmbedding::vectorForString: not bound
!missing-selector! NLEmbedding::vocabularySize not bound
!missing-selector! NLGazetteer::data not bound
!missing-selector! NLGazetteer::initWithContentsOfURL:error: not bound
!missing-selector! NLGazetteer::initWithData:error: not bound
!missing-selector! NLGazetteer::initWithDictionary:language:error: not bound
!missing-selector! NLGazetteer::labelForString: not bound
!missing-selector! NLGazetteer::language not bound
!missing-selector! NLTagger::gazetteersForTagScheme: not bound
!missing-selector! NLTagger::setGazetteers:forTagScheme: not bound
!missing-type! NLEmbedding not bound
!missing-type! NLGazetteer not bound

Просмотреть файл

@ -1,38 +0,0 @@
!missing-enum! NLDistanceType not bound
!missing-enum! NLTaggerAssetsResult not bound
!missing-field! NLTagSchemeSentimentScore not bound
!missing-selector! +NLEmbedding::currentRevisionForLanguage: not bound
!missing-selector! +NLEmbedding::embeddingWithContentsOfURL:error: not bound
!missing-selector! +NLEmbedding::supportedRevisionsForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage:revision: not bound
!missing-selector! +NLEmbedding::writeEmbeddingForDictionary:language:revision:toURL:error: not bound
!missing-selector! +NLGazetteer::gazetteerWithContentsOfURL:error: not bound
!missing-selector! +NLGazetteer::writeGazetteerForDictionary:language:toURL:error: not bound
!missing-selector! +NLTagger::requestAssetsForLanguage:tagScheme:completionHandler: not bound
!missing-selector! NLEmbedding::containsString: not bound
!missing-selector! NLEmbedding::dimension not bound
!missing-selector! NLEmbedding::distanceBetweenString:andString:distanceType: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::getVector:forString: not bound
!missing-selector! NLEmbedding::language not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::revision not bound
!missing-selector! NLEmbedding::vectorForString: not bound
!missing-selector! NLEmbedding::vocabularySize not bound
!missing-selector! NLGazetteer::data not bound
!missing-selector! NLGazetteer::initWithContentsOfURL:error: not bound
!missing-selector! NLGazetteer::initWithData:error: not bound
!missing-selector! NLGazetteer::initWithDictionary:language:error: not bound
!missing-selector! NLGazetteer::labelForString: not bound
!missing-selector! NLGazetteer::language not bound
!missing-selector! NLTagger::gazetteersForTagScheme: not bound
!missing-selector! NLTagger::setGazetteers:forTagScheme: not bound
!missing-type! NLEmbedding not bound
!missing-type! NLGazetteer not bound

Просмотреть файл

@ -1,38 +0,0 @@
!missing-enum! NLDistanceType not bound
!missing-enum! NLTaggerAssetsResult not bound
!missing-field! NLTagSchemeSentimentScore not bound
!missing-selector! +NLEmbedding::currentRevisionForLanguage: not bound
!missing-selector! +NLEmbedding::embeddingWithContentsOfURL:error: not bound
!missing-selector! +NLEmbedding::supportedRevisionsForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage:revision: not bound
!missing-selector! +NLEmbedding::writeEmbeddingForDictionary:language:revision:toURL:error: not bound
!missing-selector! +NLGazetteer::gazetteerWithContentsOfURL:error: not bound
!missing-selector! +NLGazetteer::writeGazetteerForDictionary:language:toURL:error: not bound
!missing-selector! +NLTagger::requestAssetsForLanguage:tagScheme:completionHandler: not bound
!missing-selector! NLEmbedding::containsString: not bound
!missing-selector! NLEmbedding::dimension not bound
!missing-selector! NLEmbedding::distanceBetweenString:andString:distanceType: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::getVector:forString: not bound
!missing-selector! NLEmbedding::language not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::revision not bound
!missing-selector! NLEmbedding::vectorForString: not bound
!missing-selector! NLEmbedding::vocabularySize not bound
!missing-selector! NLGazetteer::data not bound
!missing-selector! NLGazetteer::initWithContentsOfURL:error: not bound
!missing-selector! NLGazetteer::initWithData:error: not bound
!missing-selector! NLGazetteer::initWithDictionary:language:error: not bound
!missing-selector! NLGazetteer::labelForString: not bound
!missing-selector! NLGazetteer::language not bound
!missing-selector! NLTagger::gazetteersForTagScheme: not bound
!missing-selector! NLTagger::setGazetteers:forTagScheme: not bound
!missing-type! NLEmbedding not bound
!missing-type! NLGazetteer not bound

Просмотреть файл

@ -1,38 +0,0 @@
!missing-enum! NLDistanceType not bound
!missing-enum! NLTaggerAssetsResult not bound
!missing-field! NLTagSchemeSentimentScore not bound
!missing-selector! +NLEmbedding::currentRevisionForLanguage: not bound
!missing-selector! +NLEmbedding::embeddingWithContentsOfURL:error: not bound
!missing-selector! +NLEmbedding::supportedRevisionsForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage: not bound
!missing-selector! +NLEmbedding::wordEmbeddingForLanguage:revision: not bound
!missing-selector! +NLEmbedding::writeEmbeddingForDictionary:language:revision:toURL:error: not bound
!missing-selector! +NLGazetteer::gazetteerWithContentsOfURL:error: not bound
!missing-selector! +NLGazetteer::writeGazetteerForDictionary:language:toURL:error: not bound
!missing-selector! +NLTagger::requestAssetsForLanguage:tagScheme:completionHandler: not bound
!missing-selector! NLEmbedding::containsString: not bound
!missing-selector! NLEmbedding::dimension not bound
!missing-selector! NLEmbedding::distanceBetweenString:andString:distanceType: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForString:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::enumerateNeighborsForVector:maximumCount:maximumDistance:distanceType:usingBlock: not bound
!missing-selector! NLEmbedding::getVector:forString: not bound
!missing-selector! NLEmbedding::language not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForString:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:distanceType: not bound
!missing-selector! NLEmbedding::neighborsForVector:maximumCount:maximumDistance:distanceType: not bound
!missing-selector! NLEmbedding::revision not bound
!missing-selector! NLEmbedding::vectorForString: not bound
!missing-selector! NLEmbedding::vocabularySize not bound
!missing-selector! NLGazetteer::data not bound
!missing-selector! NLGazetteer::initWithContentsOfURL:error: not bound
!missing-selector! NLGazetteer::initWithData:error: not bound
!missing-selector! NLGazetteer::initWithDictionary:language:error: not bound
!missing-selector! NLGazetteer::labelForString: not bound
!missing-selector! NLGazetteer::language not bound
!missing-selector! NLTagger::gazetteersForTagScheme: not bound
!missing-selector! NLTagger::setGazetteers:forTagScheme: not bound
!missing-type! NLEmbedding not bound
!missing-type! NLGazetteer not bound