Словарь синонимов java

I am developing a JAVA application where user enters a word in textbox,the synonyms of the word has to be autoprompted to him.

Given a word,is it possible to find its synonyms and its root in JAVA?should i use a dictionary?

eg:

word:   killer
synonym: murderer butcher hitman

word:   killing
root:   kill

asked Feb 7, 2011 at 16:09

psy's user avatar

5

As for roots this process is called stemming (google for that). There are some (Java) libraries like that: http://snowball.tartarus.org/download.php

answered Feb 7, 2011 at 16:19

PeterMmm's user avatar

PeterMmmPeterMmm

24k13 gold badges71 silver badges111 bronze badges

1

I would suggest looking for an API for a online site where you can access a synonym dictionary instead of having to build your own. It will be large enough that you will not want to keep it in memory therefore you are going to have to have some external storage location if you are going to do it yourself.

answered Feb 7, 2011 at 16:19

jzd's user avatar

jzdjzd

23.4k9 gold badges54 silver badges76 bronze badges

You definitely have to use a dictionary, at least for the synonyms, as there are no standard «synonym-lists» available in the JRE.

answered Feb 7, 2011 at 16:13

kohlehydrat's user avatar

kohlehydratkohlehydrat

5033 silver badges19 bronze badges

Permalink

Cannot retrieve contributors at this time


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

package finalProject;
public class Synonym implements Comparable<Synonym> {
public String synonym;
public int frequency;
public Synonym(String word) {
this.synonym = word;
this.frequency = 1;
}
public void increment() {
this.frequency++;
}
@Override
public boolean equals(Object other) {
if (other == null) return false;
if (other == this) return true;
if (other instanceof String) return other.equals(this.synonym);
if (other instanceof Synonym) return ((Synonym) other).synonym.equals(this.synonym);
return false;
}
@Override
public int compareTo(Synonym o) {
return ((Synonym) o).frequencythis.frequency;
}
@Override
public String toString() {
return synonym + » — « + frequency;
}
}

Я разрабатываю приложение JAVA, в котором пользователь вводит слово в текстовое поле, синонимы этого слова должны быть автопропрописаны ему.

Учитывая слово, можно ли найти его синонимы и его корень в JAVA? Должен ли я использовать словарь?

например:

word:   killer
synonym: murderer butcher hitman

word:   killing
root:   kill

07 фев. 2011, в 17:56

Поделиться

Источник

4 ответа

Я бы предложил искать API для онлайн-сайта, где вы можете получить доступ к словарю синонимов вместо того, чтобы создавать свои собственные. Он будет достаточно большим, чтобы вы не захотели хранить его в памяти, поэтому вам придется иметь какое-то внешнее хранилище, если вы сделаете это сами.

jzd
07 фев. 2011, в 18:18

Поделиться

Вам определенно нужно использовать словарь, по крайней мере для синонимов, поскольку в JRE нет стандартных «синонимов-списков».

kohlehydrat
07 фев. 2011, в 18:05

Поделиться

Ещё вопросы

  • 1Spring data jpa + объединяет 2 таблицы
  • 1Как сохранить цветовую шкалу d3 с разрывом и повторным соединением ссылок
  • 1React Native: событие onContentSizeChange для элемента TextInput не работает на Android
  • 1Хранилище данных с Hadoop ETL
  • 0как установить кнопку положения внизу?
  • 0читать из файла, который содержит двоичные числа, замаскированные случайными символами c ++?
  • 0Как подсчитать конкретные строки в GROUP BY SQL
  • 1BackgroundWorker ReportProgress из другого класса
  • 0C ++ инициализирует неизвестный размер 2DimArray в конструкторе
  • 1Google говорит, что JDO не выполняет каскадное удаление из хранилища данных. Так как вы это делаете?
  • 0Как работать с аргументами в Xcode
  • 1Переменная класса NameError не определена python
  • 1Функция хеширования Java MD5, дающая неправильный хеш
  • 0Изменить прозрачность другой вкладки при наведении курсора на текущую вкладку
  • 1Изящное программное отключение окон
  • 0JQuery Datepicker: как отрицать это, используя мой CSS
  • 1POI API — ссылка на шрифт по пути
  • 0JQuery, как взять ссылку на дочерний элемент и использовать его где-нибудь еще
  • 0регулярное выражение не соответствует, что я делаю не так?
  • 1Как установить права на тикет в клиентской библиотеке Zenpy python
  • 1Использует ли эта реализация сортировки слиянием взаимную рекурсию?
  • 0Почему статическая переменная класса не может быть размещена в стеке?
  • 1Свободное отображение частных полей NHibernate
  • 0Использовать объект в векторе в цикле
  • 1Scipy.ode «Ошибка теста неоднократно»
  • 0Отладка Visual studio 2008; разрыв, когда значения пишутся
  • 0отображать значение из таблицы php при нажатии на кнопку на другой странице
  • 0Запрет прокрутки скрипта jquery от запуска дважды
  • 1Выполнение пакетного файла с зависимостью пути в c #
  • 0Вызов одного метода из другого
  • 1Не удается запустить проекты модульного тестирования .NET 3.5 из-за VS2012?
  • 0Прекращение загрузки файла Symfony2 с сервера Apache
  • 1C # Формат даты {0: t} — {0: t + 1} 00:00 — 01:00
  • 1Как создать вложенный массив объектов JSON, используя Python?
  • 0Как исправить нг-шаблон в угловых
  • 0Вызов C ++ (член) функционирует динамически
  • 0СБОЙ: ParseException строка 1:94 не соответствует вводу ‘hdfs’, ожидая StringLiteral рядом с ‘location’ в расположении раздела
  • 1Не удается получить информацию XML в Java
  • 0Определение изображения с помощью интерактивных форм и масштабирования
  • 0Сортировка списка объектов по полю даты в Java
  • 0Соответствие строк в MySQL: 1 изменено: 0 предупреждений: 0 для столбца даты
  • 0Рекомендуемая угловая практика для $ http в контроллере или сервисе
  • 0Rails не может отображать изображение из угловой вставленной переменной
  • 0AngularJS, проблемы с переменной $ index в ng-repeat
  • 1Python scipy функция не принимает глобальные переменные
  • 1Звук не играет ожидаемое количество раз
  • 0Загрузить всплывающее окно jQuery при загрузке страницы, используя данные URL?
  • 0Hover FadeOut для определенного класса
  • 1Веб-формы .NET обновляют контент на стороне сервера
  • 2Изменить размер текста на positveButtonText в диалоговом окне EditTextPreference

Сообщество Overcoder

Рассмотрим такую структуру данных, как словарь (синонимы: ассоциативный массив, отображение, map, dictionary). Словарь в Java реализуется с помощью интерфейса Map. Мы разберем его реализацию классом HashMap. В качестве примера напишем программу «Англо-русский словарь» на Java.

Словарь: общая информация и использование в Java

Словарь (dictionary) — это структура данных, позволяющая хранить информацию в виде комбинации «ключ» — «значение» (key — value). То есть, с каким либо значением (value) мы ассоциируем ключ (это может быть: id, термин и т. д.) и эту пару заносим в словарь. Обращение к элементу словаря, удаление, поиск по словарю производится по ключу. С помощью данной структуры, например, удобно организовать телефонный справочник, где имени (key) соответствует номер телефона (value).

В Java словарь определяется следующим образом:

Map<String,String> dictionary = new HashMap<String,String>();

Класс HashMap реализует интерфейс Map.

Добавление элемента производится с помощью метода put:

dictionary.put(key, value);

Получение значения элемента по ключу выполняется с помощью метода get:

Для удаления записи с определенным ключом используется remove:

Метод containsKey(key) возвращает true, если в словаре содержится элемент в ключом key, в противном случае будет возвращено false.

Чтобы получить все ключевые слова, всех элементов словаря, можно вызвать keySet:

Аналогично, для получения всех значений элементов ассоциативного массива используется метод values:

Метод size возвращает количество записей в словаре:

Конструкция:

возвращает все пары «ключ» — «значение», содержащиеся в данном словаре.

Заметим, что методы keySet(), values() и toString() возвращают элементы не в том порядке, в котором они были добавлены в словарь, а в произвольном.

Словарь: пример программы на Java

Создадим программу на языке программирования Java, демонстрирующую работу со структурой данных — словарь (dictionary). В качестве примера возьмем такую предметную область, как «Англо-русский словарь»: добавим в него слова, обозначающие дни недели и их перевод.

В данной программе показана работа со всеми методами, разобранными выше. Весь код сопровождается комментариями.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

package dictionarypractice;

import java.util.HashMap;

import java.util.Map;

public class DictionaryPractice {

    public static void main(String[] args) {

        // English to Russian Dictionary

        Map<String,String> engRus = new HashMap<String,String>();

        //добавление элементов

        engRus.put(«Monday», «Понедельник»);

        engRus.put(«Tuesday», «Вторник»);

        engRus.put(«Wednesday», «Среда»);

        engRus.put(«Thursday», «Четверг»);

        engRus.put(«Friday», «Пятница»);

        //получение элементов

        System.out.println(engRus.get(«Monday»));

        System.out.println(engRus.get(«Tuesday»));

        System.out.println(engRus.get(«Wednesday»));

        System.out.println(engRus.get(«Thursday»));

        System.out.println(engRus.get(«Friday»));

        //содержит ли словарь запись с ключом «Wednesday»?

        System.out.println(engRus.containsKey(«Wednesday»));

        System.out.println(engRus.keySet());

        System.out.println(engRus.values());

        System.out.println(engRus.size());

        engRus.remove(«Monday»);

        System.out.println(engRus.toString());

    }

}

Демонстрация работы программы, использующей структуру данных — словарь:

Словарь в Java. Демонстрация программы

Скачать исходный код (проект для NetBeans IDE) можно по ссылке ниже.

Скачать исходник

Производитель: cHeRsAnYa

Русский словарь синонимов. Более 97 тысяч групп слов. Производится полнотекстовый поиск по введённому слову.
— задать вопросы автору программы можно по ссылке Обсудить…

Русский язык: нет

v.0.0.17 jad
3,63 МБ, загружен 24.03.10

Понравилась статья? Поделить с друзьями:
  • Словарь синонимов epub
  • Словарь синонимов collins
  • Словарь синонимов api
  • Словарь синонимов 1976
  • Словарь синонимов 19 века