|
@@ -7,6 +7,7 @@ using NumSharp; |
|
|
using static Tensorflow.KerasApi; |
|
|
using static Tensorflow.KerasApi; |
|
|
using Tensorflow; |
|
|
using Tensorflow; |
|
|
using Tensorflow.Keras.Datasets; |
|
|
using Tensorflow.Keras.Datasets; |
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
|
|
|
|
|
namespace TensorFlowNET.Keras.UnitTest |
|
|
namespace TensorFlowNET.Keras.UnitTest |
|
|
{ |
|
|
{ |
|
@@ -240,9 +241,6 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(22, padded.shape[1]); |
|
|
Assert.AreEqual(22, padded.shape[1]); |
|
|
|
|
|
|
|
|
var firstRow = padded[0]; |
|
|
|
|
|
var secondRow = padded[1]; |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 19].GetInt32()); |
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 19].GetInt32()); |
|
|
for (var i = 0; i < 8; i++) |
|
|
for (var i = 0; i < 8; i++) |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
@@ -263,9 +261,6 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(15, padded.shape[1]); |
|
|
Assert.AreEqual(15, padded.shape[1]); |
|
|
|
|
|
|
|
|
var firstRow = padded[0]; |
|
|
|
|
|
var secondRow = padded[1]; |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 12].GetInt32()); |
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 12].GetInt32()); |
|
|
for (var i = 0; i < 3; i++) |
|
|
for (var i = 0; i < 3; i++) |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
@@ -286,9 +281,6 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(4, padded.shape[0]); |
|
|
Assert.AreEqual(15, padded.shape[1]); |
|
|
Assert.AreEqual(15, padded.shape[1]); |
|
|
|
|
|
|
|
|
var firstRow = padded[0]; |
|
|
|
|
|
var secondRow = padded[1]; |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 9].GetInt32()); |
|
|
Assert.AreEqual(tokenizer.word_index["worst"], padded[0, 9].GetInt32()); |
|
|
for (var i = 12; i < 15; i++) |
|
|
for (var i = 12; i < 15; i++) |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
|
Assert.AreEqual(0, padded[0, i].GetInt32()); |
|
@@ -296,5 +288,90 @@ namespace TensorFlowNET.Keras.UnitTest |
|
|
for (var i = 0; i < 15; i++) |
|
|
for (var i = 0; i < 15; i++) |
|
|
Assert.AreNotEqual(0, padded[1, i].GetInt32()); |
|
|
Assert.AreNotEqual(0, padded[1, i].GetInt32()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void TextToMatrixBinary() |
|
|
|
|
|
{ |
|
|
|
|
|
var tokenizer = keras.preprocessing.text.Tokenizer(); |
|
|
|
|
|
tokenizer.fit_on_texts(texts); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(27, tokenizer.word_index.Count); |
|
|
|
|
|
|
|
|
|
|
|
var matrix = tokenizer.texts_to_matrix(texts); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(texts.Length, matrix.shape[0]); |
|
|
|
|
|
|
|
|
|
|
|
CompareLists(new double[] { 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, matrix[0].ToArray<double>()); |
|
|
|
|
|
CompareLists(new double[] { 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, matrix[1].ToArray<double>()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void TextToMatrixCount() |
|
|
|
|
|
{ |
|
|
|
|
|
var tokenizer = keras.preprocessing.text.Tokenizer(); |
|
|
|
|
|
tokenizer.fit_on_texts(texts); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(27, tokenizer.word_index.Count); |
|
|
|
|
|
|
|
|
|
|
|
var matrix = tokenizer.texts_to_matrix(texts, mode:"count"); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(texts.Length, matrix.shape[0]); |
|
|
|
|
|
|
|
|
|
|
|
CompareLists(new double[] { 0, 2, 2, 2, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, matrix[0].ToArray<double>()); |
|
|
|
|
|
CompareLists(new double[] { 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, matrix[1].ToArray<double>()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void TextToMatrixFrequency() |
|
|
|
|
|
{ |
|
|
|
|
|
var tokenizer = keras.preprocessing.text.Tokenizer(); |
|
|
|
|
|
tokenizer.fit_on_texts(texts); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(27, tokenizer.word_index.Count); |
|
|
|
|
|
|
|
|
|
|
|
var matrix = tokenizer.texts_to_matrix(texts, mode: "freq"); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(texts.Length, matrix.shape[0]); |
|
|
|
|
|
|
|
|
|
|
|
double t12 = 2.0 / 12.0; |
|
|
|
|
|
double o12 = 1.0 / 12.0; |
|
|
|
|
|
double t22 = 2.0 / 22.0; |
|
|
|
|
|
double o22 = 1.0 / 22.0; |
|
|
|
|
|
|
|
|
|
|
|
CompareLists(new double[] { 0, t12, t12, t12, o12, t12, t12, o12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, matrix[0].ToArray<double>()); |
|
|
|
|
|
CompareLists(new double[] { 0, 0, 0, 0, 0, o22, 0, 0, o22, o22, o22, o22, o22, o22, o22, o22, t22, o22, o22, o22, o22, o22, o22, o22, o22, o22, o22, o22 }, matrix[1].ToArray<double>()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[TestMethod] |
|
|
|
|
|
public void TextToMatrixTDIDF() |
|
|
|
|
|
{ |
|
|
|
|
|
var tokenizer = keras.preprocessing.text.Tokenizer(); |
|
|
|
|
|
tokenizer.fit_on_texts(texts); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(27, tokenizer.word_index.Count); |
|
|
|
|
|
|
|
|
|
|
|
var matrix = tokenizer.texts_to_matrix(texts, mode: "tfidf"); |
|
|
|
|
|
|
|
|
|
|
|
Assert.AreEqual(texts.Length, matrix.shape[0]); |
|
|
|
|
|
|
|
|
|
|
|
double t1 = 1.1736001944781467; |
|
|
|
|
|
double t2 = 0.69314718055994529; |
|
|
|
|
|
double t3 = 1.860112299086919; |
|
|
|
|
|
double t4 = 1.0986122886681098; |
|
|
|
|
|
double t5 = 0.69314718055994529; |
|
|
|
|
|
|
|
|
|
|
|
CompareLists(new double[] { 0, t1, t1, t1, t2, 0, t1, t2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, matrix[0].ToArray<double>()); |
|
|
|
|
|
CompareLists(new double[] { 0, 0, 0, 0, 0, 0, 0, 0, t5, t5, t5, t5, t5, t5, t5, t5, t3, t4, t4, t4, t4, t4, t4, t4, t4, t4, t4, t4 }, matrix[1].ToArray<double>()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void CompareLists<T>(IList<T> expected, IList<T> actual) |
|
|
|
|
|
{ |
|
|
|
|
|
Assert.AreEqual(expected.Count, actual.Count); |
|
|
|
|
|
for (var i = 0; i < expected.Count; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
Assert.AreEqual(expected[i], actual[i]); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |