using System.Collections.Generic; using ZeroLevel.Services.Semantic; namespace Semantic.API.Proxy { /// /// Предоставляет доступ к Prime Semantic API /// public sealed class SemanticApiProxy : BaseProxy { public SemanticApiProxy(string baseUri) : base(baseUri) { } #region Split to words /// /// Разделение текста на слова /// /// Список слов public IEnumerable ExtractWords(string text) { return Post>("/api/text/words", text); } /// /// Разделение текста на слова, без повторов /// /// Список слов public IEnumerable ExtractUniqueWords(string text) { return Post>("/api/text/words/unique", text); } /// /// Разделение текста на слова без стоп-слов и повторов /// /// Список слов public IEnumerable ExtractUniqueWordsWithoutStopWords(string text) { return Post>("/api/text/words/clean", text); } #endregion #region Stemming /// /// Разделение текста на стемы (основы слов) /// /// Список стемов public IEnumerable ExtractStems(string text) { return Post>("/api/stem", text); } /// /// Разделение текста на стемы (основы слов) без повторов /// /// Список стемов public IEnumerable ExtractUniqueStems(string text) { return Post>("/api/stem/unique", text); } /// /// Разделение текста на токены, на основе стемов /// /// Список токенов (оригинальное слово, стем, позиция в тексте) public IEnumerable ExtractUniqueStemsWithoutStopWords(string text) { return Post>("/api/stem/clean", text); } #endregion #region Lemmatization /// /// Разделение текста на леммы (начальные формы слов) /// /// Список лемм public IEnumerable ExtractLemmas(string text) { return Post>("/api/lemma", text); } /// /// Разделение текста на леммы (начальные формы слов) без повторов /// /// Список лемм public IEnumerable ExtractUniqueLemmas(string text) { return Post>("/api/lemma/unique", text); } /// /// Разделение текста на леммы (начальные формы слов) без повторов и стоп-слов /// /// Список лемм public IEnumerable ExtractUniqueLemmasWithoutStopWords(string text) { return Post>("/api/lemma/clean", text); } #endregion #region Words occurences /// /// Поиск вхождений слов в текст /// /// Текст /// Массив слов для поиска /// Список токенов (слово, позиция) public IDictionary> SearchWordsInTextDirectly(string text, string[] words) { return Post>>("/api/text/occurences/words", new WordsSearchRequest { Text = text, Words = words }); } /// /// Поиск вхождений слов в текст, на основе стемминга /// /// Текст /// Массив слов для поиска /// Список токенов (слово, стем, позиция) public IDictionary> SearchWordsInTextByStemming(string text, string[] words) { return Post>>("/api/stem/occurences/words", new WordsSearchRequest { Text = text, Words = words }); } /// /// Поиск вхождений слов в текст, на основе лемматизации /// /// Текст /// Массив слов для поиска /// Список токенов (слово, лемма, позиция) public IDictionary> SearchWordsInTextByLemmas(string text, string[] words) { return Post>>("/api/lemma/occurences/words", new WordsSearchRequest { Text = text, Words = words }); } #endregion #region Phrase occurences /// /// Поиск вхождений фраз в текст /// /// Текст /// Массив фраз для поиска /// Список фраз в тексте соответствующих поисковому запросу public IDictionary> SearchPhrasesInTextDirectly(string text, string[] phrases) { return Post>>("/api/text/occurences/phrases", new WordsSearchRequest { Text = text, Words = phrases }); } /// /// Поиск вхождений фраз в текст, на основе стемминга /// /// Текст /// Массив фраз для поиска /// Список фраз в тексте соответствующих поисковому запросу public IDictionary> SearchPhrasesInTextByStemming(string text, string[] phrases) { return Post>>("/api/stem/occurences/phrases", new WordsSearchRequest { Text = text, Words = phrases }); } /// /// Поиск вхождений фраз в текст, на основе лемматизации /// /// Текст /// Массив фраз для поиска /// Список фраз в тексте соответствующих поисковому запросу public IDictionary> SearchPhrasesInTextByLemmas(string text, string[] phrases) { return Post>>("api/lemma/occurences/phrases", new WordsSearchRequest { Text = text, Words = phrases }); } #endregion } }