/
dayekb
/
vibecoding_gost_citations
Обзор
Документация
Войти
/
dayekb
/
vibecoding_gost_citations
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
example_usage.py
212 строк
9 KB
dayekb
upload files
25 сен 2025, 18:49
25 сен 2025, 18:49
4964e9a
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Пример использования анализатора цитат для конкретной задачи """ from citation_analyzer import CitationAnalyzer import json def analyze_single_text(): """Анализ одного текста""" print("=" * 60) print("АНАЛИЗ ОДНОГО ТЕКСТА") print("=" * 60) # Текст для анализа text = """ Введение Современные информационные системы играют ключевую роль в развитии цифровой экономики [1, с. 15]. Как отмечают исследователи, эффективность таких систем напрямую зависит от качества используемых алгоритмов [2, с. 23-25]. В работе Петрова И.И. (2021, с. 45) представлены новые подходы к анализу больших данных. Автор показывает, что современные методы машинного обучения позволяют значительно повысить точность прогнозирования [3, с. 78]. Системы обработки информации требуют комплексного подхода к их разработке [4, с. 12]. Исследования последних лет показывают, что интеграция различных технологий дает наилучшие результаты [5, с. 156]. Заключение Таким образом, современные информационные технологии требуют постоянного совершенствования методов анализа данных. """ # Ключевые слова темы topic_keywords = ["система", "информация", "данные", "алгоритм", "анализ", "разработка", "метод"] # Создание анализатора analyzer = CitationAnalyzer(topic_keywords) # Анализ result = analyzer.analyze_text(text) # Вывод отчета print(analyzer.generate_report(result)) return result def analyze_with_custom_criteria(): """Анализ с настройкой критериев""" print("\n" + "=" * 60) print("АНАЛИЗ С НАСТРОЕННЫМИ КРИТЕРИЯМИ") print("=" * 60) # Создание анализатора с настройками analyzer = CitationAnalyzer(["система", "информация", "данные"]) # Настройка критериев analyzer.min_sources = 3 # Минимум 3 источника analyzer.min_year = 2019 # Не старше 2019 года analyzer.max_score = 15.0 # Максимум 15 баллов analyzer.points_per_source = 3.0 # По 3 балла за источник # Тестовый текст text = """ Анализ показывает эффективность новых методов [1, с. 10]. Исследования 2020 года подтверждают результаты (Иванов, 2020, с. 25). Современные системы требуют обновления [2, с. 30]. """ result = analyzer.analyze_text(text) print(f"Настроенные критерии:") print(f"- Минимум источников: {analyzer.min_sources}") print(f"- Минимальный год: {analyzer.min_year}") print(f"- Максимальный балл: {analyzer.max_score}") print(f"- Баллов за источник: {analyzer.points_per_source}") print() print(f"Результат: {result.total_score:.1f}/{result.max_score} баллов") print(f"Процент: {(result.total_score/result.max_score)*100:.1f}%") def batch_analysis_example(): """Пример пакетного анализа""" print("\n" + "=" * 60) print("ПАКЕТНЫЙ АНАЛИЗ (УПРОЩЕННЫЙ)") print("=" * 60) # Список текстов для анализа texts = [ { "name": "Работа 1", "text": "Современные системы [1, с. 15]. Исследования показывают (Петров, 2021, с. 25)." }, { "name": "Работа 2", "text": "Анализ данных [1, с. 10] [2, с. 20] [3, с. 30] [4, с. 40] [5, с. 50]." }, { "name": "Работа 3", "text": "Старые исследования 2018 года [1, с. 5]. Неактуальные данные [2, с. 10]." } ] analyzer = CitationAnalyzer(["система", "данные", "анализ"]) results = {} for work in texts: result = analyzer.analyze_text(work["text"]) results[work["name"]] = { "sources": result.total_sources, "score": result.total_score, "percentage": (result.total_score / result.max_score) * 100, "penalties": result.penalties } # Вывод результатов print("Результаты пакетного анализа:") print("-" * 40) for name, data in results.items(): print(f"{name}:") print(f" Источников: {data['sources']}") print(f" Баллы: {data['score']:.1f}/10.0") print(f" Процент: {data['percentage']:.1f}%") if data['penalties']: print(f" Штрафы: {', '.join(data['penalties'])}") print() return results def export_results_example(): """Пример экспорта результатов""" print("\n" + "=" * 60) print("ЭКСПОРТ РЕЗУЛЬТАТОВ") print("=" * 60) # Анализ текста analyzer = CitationAnalyzer(["система", "информация"]) text = "Современные системы [1, с. 15]. Исследования (Петров, 2021, с. 25)." result = analyzer.analyze_text(text) # Подготовка данных для экспорта export_data = { "analysis_date": "2024-01-01", "topic_keywords": analyzer.topic_keywords, "criteria": { "min_sources": analyzer.min_sources, "min_year": analyzer.min_year, "max_score": analyzer.max_score }, "results": { "total_sources": result.total_sources, "valid_sources": result.valid_sources, "gost_compliant_sources": result.gost_compliant_sources, "recent_sources": result.recent_sources, "total_score": result.total_score, "max_score": result.max_score, "percentage": (result.total_score / result.max_score) * 100 }, "sources": [ { "text": s.text, "year": s.year, "is_gost_compliant": s.is_gost_compliant, "relevance_score": s.relevance_score } for s in result.sources ], "penalties": result.penalties, "recommendations": result.recommendations } # Сохранение в JSON with open('example_result.json', 'w', encoding='utf-8') as f: json.dump(export_data, f, ensure_ascii=False, indent=2) print("Результат экспортирован в example_result.json") print(f"Найдено источников: {result.total_sources}") print(f"Баллы: {result.total_score:.1f}/{result.max_score}") return export_data def main(): """Основная функция с примерами""" print("ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ АНАЛИЗАТОРА ЦИТАТ") # 1. Анализ одного текста analyze_single_text() # 2. Анализ с настройкой критериев analyze_with_custom_criteria() # 3. Пакетный анализ batch_analysis_example() # 4. Экспорт результатов export_results_example() print("\n" + "=" * 60) print("ВСЕ ПРИМЕРЫ ВЫПОЛНЕНЫ") print("=" * 60) print("\nДля использования в вашем проекте:") print("1. from citation_analyzer import CitationAnalyzer") print("2. analyzer = CitationAnalyzer(['ваши', 'ключевые', 'слова'])") print("3. result = analyzer.analyze_text('ваш текст')") print("4. print(analyzer.generate_report(result))") if __name__ == "__main__": main()