当前位置: 首页 > news >正文

开个做网站要多少钱windows优化大师绿色版

开个做网站要多少钱,windows优化大师绿色版,科技网站建设,wordpress插件直播我们基于python代码,使用PyQt5创建图形用户界面(GUI),同时支持中英文两种语言的文本论文文献关键信息提取。 PyQt5:用于创建GUI应用程序。 jieba:中文分词库,用于中文文本的处理。 re&#xff…

我们基于python代码,使用PyQt5创建图形用户界面(GUI),同时支持中英文两种语言的文本论文文献关键信息提取。

PyQt5:用于创建GUI应用程序。
jieba:中文分词库,用于中文文本的处理。
re:正则表达式模块,用于文本清理和句子分割。
numpy:提供数值计算能力,如数组操作、矩阵运算等,主要用于TextRank算法的实现。

import sys
import re
import jieba
import numpy as np
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,QHBoxLayout, QTextEdit, QPushButton, QLabel,QMessageBox, QSpinBox, QFileDialog, QComboBox)
from PyQt5.QtCore import Qtclass TextRankSummarizer:def __init__(self, language='chinese'):self.language = languageself.stopwords = self.load_stopwords()# 初始化jieba中文分词器if language == 'chinese':jieba.initialize()def load_stopwords(self):"""内置停用词表"""if self.language == 'chinese':return {'的', '了', '在', '是', '我', '有', '和', '就', '不', '人', '都', '一', '一个', '也', '要'}else:  # 英文停用词return {'a', 'an', 'the', 'and', 'or', 'but', 'if', 'is', 'are', 'of', 'to', 'in', 'on'}def preprocess_text(self, text):"""文本预处理"""# 清洗特殊字符text = re.sub(r'[^\w\s。,.?!]', '', text)# 分句处理if self.language == 'chinese':sentences = re.split(r'[。!?]', text)else:sentences = re.split(r'[.!?]', text)return [s.strip() for s in sentences if len(s) > 2]def calculate_similarity(self, sentence, other_sentence):"""计算句子相似度"""words1 = [w for w in (jieba.cut(sentence) if self.language == 'chinese' else sentence.lower().split())if w not in self.stopwords]words2 = [w for w in(jieba.cut(other_sentence) if self.language == 'chinese' else other_sentence.lower().split())if w not in self.stopwords]# 使用Jaccard相似度intersection = len(set(words1) & set(words2))union = len(set(words1) | set(words2))return intersection / union if union != 0 else 0def textrank(self, sentences, top_n=5, damping_factor=0.85, max_iter=100):"""TextRank算法实现"""similarity_matrix = np.zeros((len(sentences), len(sentences)))# 构建相似度矩阵for i in range(len(sentences)):for j in range(len(sentences)):if i != j:similarity_matrix[i][j] = self.calculate_similarity(sentences[i], sentences[j])# 归一化矩阵row_sum = similarity_matrix.sum(axis=1)normalized_matrix = similarity_matrix / row_sum[:, np.newaxis]# 初始化得分scores = np.ones(len(sentences))# 迭代计算for _ in range(max_iter):prev_scores = np.copy(scores)for i in range(len(sentences)):scores[i] = (1 - damping_factor) + damping_factor * np.sum(normalized_matrix[i, :] * prev_scores)if np.linalg.norm(scores - prev_scores) < 1e-5:break# 获取重要句子索引ranked_indices = np.argsort(scores)[::-1][:top_n]return sorted(ranked_indices)def summarize(self, text, ratio=0.2):"""生成摘要"""sentences = self.preprocess_text(text)if len(sentences) < 3:return "文本过短,无法生成有效摘要"top_n = max(1, int(len(sentences) * ratio))important_indices = self.textrank(sentences, top_n=top_n)# 按原文顺序排列selected_sentences = [sentences[i] for i in sorted(important_indices)]# 中文使用句号连接,英文使用.连接separator = '。' if self.language == 'chinese' else '. 'return separator.join(selected_sentences) + ('。' if self.language == 'chinese' else '.')class MainWindow(QMainWindow):def __init__(self):super().__init__()# 初始化摘要器self.summarizer = TextRankSummarizer()# 界面设置self.setup_ui()def setup_ui(self):self.setWindowTitle("TextRank文本摘要工具")self.setGeometry(100, 100, 1000, 800)main_widget = QWidget()layout = QVBoxLayout()# 输入区self.input_text = QTextEdit()self.input_text.setPlaceholderText("在此粘贴需要摘要的文本(建议500字以上)...")# 控制区control_layout = QHBoxLayout()self.ratio_spin = QSpinBox()self.ratio_spin.setRange(5, 50)self.ratio_spin.setValue(20)self.ratio_spin.setSuffix("%")self.lang_combo = QComboBox()self.lang_combo.addItems(["中文", "英文"])self.summarize_btn = QPushButton("生成摘要")self.import_btn = QPushButton("导入文件")self.clear_btn = QPushButton("清空")control_layout.addWidget(QLabel("摘要比例:"))control_layout.addWidget(self.ratio_spin)control_layout.addWidget(QLabel("语言:"))control_layout.addWidget(self.lang_combo)control_layout.addWidget(self.import_btn)control_layout.addWidget(self.summarize_btn)control_layout.addWidget(self.clear_btn)# 输出区self.output_text = QTextEdit()self.output_text.setReadOnly(True)# 布局组合layout.addWidget(QLabel("输入文本:"))layout.addWidget(self.input_text)layout.addLayout(control_layout)layout.addWidget(QLabel("摘要结果:"))layout.addWidget(self.output_text)main_widget.setLayout(layout)self.setCentralWidget(main_widget)# 信号连接self.summarize_btn.clicked.connect(self.generate_summary)self.import_btn.clicked.connect(self.import_file)self.clear_btn.clicked.connect(self.clear_content)self.lang_combo.currentTextChanged.connect(self.change_language)def change_language(self, lang):self.summarizer = TextRankSummarizer('chinese' if lang == "中文" else 'english')def generate_summary(self):text = self.input_text.toPlainText().strip()if not text:QMessageBox.warning(self, "输入错误", "请输入需要摘要的文本")returnratio = self.ratio_spin.value() / 100summary = self.summarizer.summarize(text, ratio)self.output_text.setPlainText(summary)def import_file(self):path, _ = QFileDialog.getOpenFileName(self, "打开文本文件", "","文本文件 (*.txt);;所有文件 (*.*)")if path:try:with open(path, 'r', encoding='utf-8') as f:self.input_text.setPlainText(f.read())except Exception as e:QMessageBox.critical(self, "错误", f"文件读取失败:\n{str(e)}")def clear_content(self):self.input_text.clear()self.output_text.clear()if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())

http://www.ds6.com.cn/news/107183.html

相关文章:

  • 怎么用自己的网站做链轮百度信息流平台
  • 网站管理建设工作seo资源网站排名
  • 哪个网站可以做excel营业推广经典案例
  • 网站导航如何做半透明渐变如何让百度收录自己信息
  • 如何在ftp做网站网络营销方案策划
  • 电脑网络题搜网站怎么做企业邮箱入口
  • 建设银行的官方网站今日最新体育新闻
  • 旅游网站开发的需求分析谈谈你对互联网营销的认识
  • 多城市网站建设郴州网站定制
  • 经典模板网站建设企业网站推广
  • 做网站用的图片企业营销
  • pop布局网站专业的推广公司
  • 网站建设 通讯员资源搜索引擎
  • 关于网站建设的简历网站服务器搭建
  • 沈阳网络推广长沙seo推广公司
  • 哪些网站可以做ppt赚钱百度首页排名优化多少钱
  • 宿迁盐城网站建设企业双桥seo排名优化培训
  • 比较大的做网站的公司有哪些小程序
  • 做网站年入千万网络推广怎么样
  • 大学生怎么做网站seo内部优化具体做什么
  • 高端大气安卓手机性能优化软件
  • 做网站的费用 优帮云湖南疫情最新消息今天
  • 网站关键词优化外包b2b外贸平台
  • 求职简历在哪个网站做人民日报今日新闻
  • 四川攀枝花网站建设合肥网站建设优化
  • 手机社交网站模板如何免费开自己的网站
  • 唯品会 一家专门做特卖的网站手机版浙江短视频seo优化网站
  • 精美的商城网站介绍网络培训课程
  • 绍兴网站关键词优化推广策略可以分为哪三种
  • 网站建设费用要求百度seo推广计划类型包括