Uno dei metodi migliori sembra essere addestrare un classificatore, ma se i dati di partenza non sono corretti i risultati non saranno soddisfacenti. Un classificatore è un classico sistema Garbage in, Garbage out.
Quindi per sviluppare un sistema per determinare la lingua di una frase potrebbe essere utile disporre di un altro sistema per determinare la lingua di una frase, in modo da filtrare i dati che servono per l'addestramento.
Da Windows 7 in poi si possono usare gli Extended Linguistic Services.
Su NuGet è disponibile un wrapper C# WindowsAPICodePack-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.WindowsAPICodePack.ExtendedLinguisticServices;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MappingService langDetect = new MappingService(MappingAvailableServices.LanguageDetection);
using (MappingPropertyBag bag = langDetect.RecognizeText("good morning vietnam", null))
{
string[] languages = bag.GetResultRanges()[0].FormatData(new StringArrayFormatter());
foreach (string lang in languages)
Console.WriteLine(lang);
}
}
}
}
Nessun commento:
Posta un commento