Я хотел бы вычислить сходство между txt-файлами лицензий, чтобы затем я мог на основании идентификатора license.txt определить, к какой лицензии он соответствует. Какую технику поиска информации я должен использовать? Как только я запрограммировал tf-idf, но я не уверен, применимо ли это здесь. Что ты предлагаешь?Как вычислить сходство между двумя файлами license.txt?
ответ
Я работаю над этой проблемой в течение 3 лет, позвольте мне сказать вам, что это далеко не тривиально, и вы не собираетесь решать ее с помощью единого алгоритма, не говоря уже о сходстве tf-idf и косинуса.
Есть целый ряд проблем, я пишу некоторые из них:
- подобные тексты лицензий (AGPL/GPL/LGPL, BSD/apache1.1/OpenSSL, мит/ISC/локон) чрезвычайно трудно чтобы устранить неоднозначность и иметь чрезвычайно высокое сходство с косинусом (если вы не очень умны в выборе функций, возможно ...)
- то же самое относится к разным версиям одной и той же лицензии (lgpl 2.0/2.1)
- LICENSE.TXT файлы часто содержат несколько лицензий
- Уведомления bsd очень трудно поймать, то есть. у вас есть тот же текст, за исключением правообладателя
В конце концов вы воспользуетесь комбинацией подходов, к сожалению, нет серебряной пули.
Вы можете использовать Lucene для индексации всех Лицензий в качестве документов (каждый документ Lucene является лицензией). Когда у вас есть новый файл license.txt, вы хотите проверить, с какой лицензией он отвечает, вы можете просто запросить lucene, используя весь файл license.txt в качестве запроса.
Это будет использование TF-IDF и всех IR-материалов. Но вы также можете использовать что-то более конкретное для проблемы, например, проверку определенных ключевых слов.
- 1. Найти сходство между двумя файлами
- 2. Вычислить сходство контрольной суммы
- 3. Как вычислить сходство между двумя предложениями (синтаксических и семантических)
- 4. Как вычислить сходство косинусов между двумя словами (word2vec в matlab)?
- 5. Как вычислить сходство Jaccard между двумя кадрами данных в R
- 6. Процентное сходство между двумя строками
- 7. Вычислить косинус сходство между словами
- 8. Вычислить сходство между n объектами
- 9. Вычислить сходство между узлами в Neo4j
- 10. Сходство между двумя текстовыми документами
- 11. Как вычислить сходство файлов
- 12. Python: Связь между двумя файлами
- 13. Как измерить сходство между двумя строками?
- 14. Как проверить сходство между двумя ints java
- 15. Как найти сходство между двумя данными строки
- 16. Как получить сходство между двумя строками?
- 17. Как сравнить сходство между двумя цветными изображениями?
- 18. Измерение сходства между двумя двоичными файлами?
- 19. Пересечение между двумя файлами
- 20. Интерполяция между двумя файлами
- 21. Diff между двумя файлами
- 22. Сходство между документами (сходство с косинусом)
- 23. сходство или несходство между двумя формами
- 24. Сходство между двумя наборами данных или массивов
- 25. Сходство между двумя векторами, представляющими звездные графы
- 26. Сравните сходство между двумя результирующими наборами
- 27. Сходство между двумя сигналами: поиск простой меры
- 28. SQL - сходство между двумя строками переменной длины
- 29. Определение сходство между двумя генераторами случайных чисел
- 30. Перцептивное сходство между двумя звуковыми последовательностями
Плохая новость: я думаю, мне нужно будет кое-что сделать с точным совпадением строк, а остальное я проведу вручную. если текст лицензии содержит этот URL-адрес http://www.apache.org/licenses/LICENSE-2.0.txt, это означает, что это версия Apache версии 2.0. – ilija
Оформить заявку на проект «Фосфология». Это попытка создать автоматическое сканирование источника для лицензий и других видов IP-идентификации. Савино абсолютно прав, нет серебряной пули. Проект SPDX Linux foudation, по крайней мере, окончательно стандартизирует общий набор идентификаторов известных лицензий с открытым исходным кодом. Если разработчики начнут использовать их в заголовках исходного кода, это значительно облегчит синтаксический анализ источника. –