1"""
2Интерактивен семантичен граф на знания с Python и Wikidata API
3
4[Description/Обрисовка]
5Проектът представлява приложение за създаване на мини семантичен граф на знания.
6Потребителят може да добавя понятия и връзки между тях
7
8 пример:
9 Python --used_for--> Data Science
10 Data Science --includes--> Machine Learning
11
12Може да въвежда текст:
13 Python is used for data science.
14 Data science includes machine learning.
15 Machine learning is related to artificial intelligence.
16
17ИИ/NLP модулът извлича връзки:
18 Python --used_for--> Data Science
19 Data Science --includes--> Machine Learning
20 Machine Learning --related_to--> Artificial Intelligence
21
22Или да ползва базата от знания Wikidata и да прави API calls към нея, за да търси реални понятия и да ги добавя в графа.
23
24Основната фунционалност е да се търси път между две понятия и да се показва как са свързани.
25
26[Functionalities/Надарености]
27 + Добавяне на понятия и връзки ръчно
28 + Добавяне на понятия и връзки от въведен текст
29 + Търсене на понятие чрез Wikidata API
30 Разултатите се кешират ако е конфигурирано в .env file ( cache = True, cache_ttl, default 3600)
31 Error logging ако има проблем с API call-a (ако в .env debug_mode = True, error_log_path = ... )
32
33 + Добавяне на намерени данни от API към графа.
34 + Показване на всички понятия.
35 + Показване на всички връзки.
36 + Търсене на най-кратък път между две понятия.
37 + Показване и разяснение на намерения път.
38 + Запис и зареждане на данни от CSV файл.
39 + Визуализация на графа като HTML файл.
40
41
42Milestones/Възлови точки / Модули
43- модул за четене и приемане на команди от command line.
44- Модул за добавяне на връзки и понятия ръчно
45- Модул за добавяне на връзки и понятия екстрактнати от текст
46- Модул за Комуникацията с Wikidata API
47- Модул за работа и операции в граф.
48 за създаване на графа,
49 добавяне на нови понятия и връзки
50 показване на всички понятия/връзки
51 търсене между две поня
52 Визуализация на графа като HTML файл
53- Модул за писане и четене от CSV файл.
54
55[Estimate in man-hours/Времеоценка в човекочасове]
56
57https://www.youtube.com/watch?v=N68rAkmqA_A - сори, на този етап толкова :)))
58
59
60[Usage of technologies/Потребление на технологии]
61spaCy - за разпознаване на думи, съществителни фрази и entities
62dotenv - .env
63logging - за логване на грешки
64requests - заявки към API
65cachetools - за кеширане на резултата от API
66networkx - граф и graph algorithms
67pandas - CSV export/import
68pyvis - интерактивна визуализация
69"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Милка Кръстева
18.05.2026 22:57Здравей, благодаря за feedback-a. Понеже проектът ми по Невронни мрежи е с някои от компонентите и мислих да преизползвам част от модулите. Това да пренапиша нещата от готовите библиотеки звучи като интересно идея. Ще го обмисля и ще се консултирам с Йоан също :)
|
Виктор Бечев
17.05.2026 15:17Няма да навлизам във всеки модул поотделно, просто ще индикирам една потенциална опасност - това, което си предложила като идея звучи доста професионално. Проблемът на това е, че има шанс всеки от модулите ти да се сведе до:
```
def some_function(...):
(spacy|networkx|pandas|pyvis|wikidata).some_function_from_that_module(...)
```
Което е супер, така се пише код, не преоткриваме колелото. Проблем би било, ако се окаже, че почти не си написала [Python](https://www.youtube.com/watch?v=YP2KDUiBI-E), отвъд виканията на тези библиотеки. Това, разбира се е лека хипербола, ще трябва да си размяташ и променяш инпутите тук-таме, но предполагам схващаш идеята ми.
Помня, че с Йоан коментирахте неща по темата, препоръчвам да поискаш второ мнение по темата наживо, защото може и да не съм прав.
А ако търсиш решение, най-лесното - напиши си проекта както го мислиш, после махни една-две от готовите библиотеки (най-смислените за махане са spacy и networkx, защото предоставят най-интересен набор от проблеми за решаване) и си ги напиши сама.
|