Как сделать асинхронное вложение предложений вычислить? - PullRequest
0 голосов
/ 30 июня 2019

Попытка закодировать сервис, который запускает кодирование предложений из tenorflow.js, который сравнивает два предложения и возвращает косинусное сходство. Но скалярное произведение никогда не применяется должным образом с правильными вложениями предложений.

Я попытался написать код без использования компонентов Angular, и он работал в тегах HTML-скрипта.

compare(text1: string, text2: string): number {
    let similarityScore = -1;
    UniversalSentenceEncoder.load().then(model => {
      const sentences = [text1, text2];
      model.embed(sentences).then(embeddings => {
        embeddings.array().then(embeddingsArray => {
          similarityScore = Math.round(
            math.dot(embeddingsArray[0], embeddingsArray[1]) * 100
          );
        });
      });
    });
    return similarityScore;
  }

it("should compare two text strings", () => {
    const service: SemanticSimilarityService = TestBed.get(
      SemanticSimilarityService
    );
    expect(service).toBeTruthy();
    expect(service.compare("This is a test!", "This is a test!")).toEqual(
      100,
      "Similarity Score is not 100 for exact same strings."
    );
  });

HeadlessChrome 76.0.3803 (Linux 0.0.0) SemanticSimilarityService should compare two text strings FAILED
        Error: Expected -1 to equal 100.
            at <Jasmine>
            at UserContext.<anonymous> (src/app/semantic-similarity.service.spec.ts:20:67)
            at ZoneDelegate.invoke (node_modules/zone.js/dist/zone-evergreen.js:359:1)
            at ProxyZoneSpec.push../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (node_modules/zone.js/dist/zone-testing.js:308:1)
HeadlessChrome 76.0.3803 (Linux 0.0.0): Executed 6 of 11 (1 FAILED) (skipped 5) (0 secs / 0.575 secs)
HeadlessChrome 76.0.3803 (Linux 0.0.0) SemanticSimilarityService should compare two text strings FAILED
        Error: Expected -1 to equal 100.
            at <Jasmine>
            at UserContext.<anonymous> (src/app/semantic-similarity.service.spec.ts:20:67)
            at ZoneDelegate.invoke (node_modules/zone.js/dist/zone-evergreen.js:359:1)
HeadlessChrome 76.0.3803 (Linux 0.0.0): Executed 6 of 11 (1 FAILED) (skipped 5) (0.672 secs / 0.575 secs)
...