Получение определений слов из Google java - PullRequest
0 голосов
/ 31 марта 2020

У меня есть список слов (1K +) в файле, и я хотел бы получить их определения и сохранить их. Я думал о том, чтобы получить их определения от Google, , так как это первое, что показывает . Способ, которым я думал об этом, довольно рудиментален, когда я создаю экземпляр URL, указывающий на поиск Goole по данному слову, и считываю содержимое с использованием потоков. Затем «отфильтруйте» определение, которое всегда находится между "data-dobid =" dfn "> <. Span>" и "<./ span>"

Например:

[...] data-dobid = "dfn"> <. Span>. нежелание или отказ изменить свое мнение или договориться о чем-то <./ span>. [...]

Каково определение непримиримого

Однако я хотел бы знать если есть более «эффективный» способ сделать это, например, без извлечения всех других результатов поиска. А также, если возможно загрузить несколько результатов в фоновом потоке, чтобы, когда я хочу «декодировать» определение и сохранить его, мне не всегда приходится ждать завершения поиска.

1 Ответ

0 голосов
/ 31 марта 2020

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

Этот подход не только эффективен в вычислительном отношении, но и гарантирует, что вы используете информацию правильно по ее лицензии. То, что вы предлагаете, обычно называется «очисткой» и может go противоречить различным лицензиям и условиям обслуживания.

В этом сообщении перечислены несколько свободно доступных и свободно лицензируемых словарей.

Этот вопрос AskUbuntu.SE описывает еще некоторые технические работы, необходимые для получения бесплатного словаря и ссылки на него из командной строки. Вы хотели бы скопировать эти шаблоны чтения, чтобы загрузить данные в Java.

. Еще одним подходом было бы использование свободно доступного и надлежащим образом лицензированного API, такого как https://dictionaryapi.com/. При этом все равно используются HTTP-вызовы, но он явно лицензирован и также является явным API для поиска определений слов на человеческом языке. Это преимущество перед чисткой Google, потому что вам не придется анализировать HTML, и у вас есть соответствующая лицензия на его использование.

Наконец, есть некоторые похожие, если не повторяющиеся, вопросы о StackOverflow и StackExchange. например, такой: Как реализовать словарь Engli sh в Java?

...