using System.Collections.Generic;
namespace ZeroLevel.Services.Semantic
{
public interface ILexProvider
{
///
/// Extract tokens from text as is
///
/// Spisok tokenov
IEnumerable ExtractLexTokens(string text);
IEnumerable ExtractLexTokens(string[] words);
///
/// Selecting unique tokens from text
///
/// Tokens
IEnumerable ExtractUniqueLexTokens(string text);
IEnumerable ExtractUniqueLexTokens(string[] words);
///
/// Allocation of unique tokens from text with drop of stop words
///
/// Tokens
IEnumerable ExtractUniqueLexTokensWithoutStopWords(string text);
IEnumerable ExtractUniqueLexTokensWithoutStopWords(string[] words);
///
/// Search for tokens in the text corresponding to the specified words (full-text search)
///
/// Search text
/// Search words
/// Dictionary, where key is a word, value is a list of matching tokens found for it
IDictionary> SearchLexTokensByWords(string text, string[] words);
///
/// Search for tokens in the text corresponding to the specified phrases (full-text search)
///
/// Search text
/// Search phrases
/// The dictionary, where the key is a phrase, a value is a list of token arrays corresponding to it
IDictionary> SearchLexTokensByPhrases(string text, string[] phrases);
}
}