четверг, 2 августа 2012 г.

К слову о незрелости NLP библиотек на C#

Работая в grammarly нередко сталкиваешься с задачами natural language processing. Как разработчик, посвятивший несколько лет разработке на C# и осзнавая его мощность я конечно был заинтересован в том чтобы разобраться, а какие решения есть для C# или вообще .net.

А оказалось что в сети с этим не густо. А то, что таки было найдено зачасую, после пристального взгляда не выдерживает критики... Сами посмотрите на код этого токенизатора:


using System;

namespace SharpWordNet
{
    /// <summary>
    /// Summary description for Tokenizer.
    /// </summary>
    public class Tokenizer
    {
        private string[] mTokens;
        int mPosition;

        public Tokenizer(string input, params char[] separators) 
        {
            mTokens = input.Split(separators);
            mPosition = 0;
        }

        public string NextToken()
        {
            while (mPosition < mTokens.Length)
            {
                if ((mTokens[mPosition].Length > 0))
                {
                    return mTokens[mPosition++];
                }
                mPosition++;
            }
            return null;
        }
        
    }
}

Токенизация заменена обычным сплитом по сути... А ведь это одна из бибилиотек на которые ссылаются в сети. В общем работать нам господа над этим и работать...

Вот и сам проект. Кстати, больше спасибо автору, потому как инициатива замечательная. Может вообще подключиться? Смущает небольшая активность самого автора..

Комментариев нет:

Отправить комментарий