# 向量词语预测模型 **Repository Path**: sikifeng/vector-word-prediction-model ## Basic Information - **Project Name**: 向量词语预测模型 - **Description**: js 手写,最简单的向量词语预测模型 - **Primary Language**: JavaScript - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 向量词预测模型 一个简单而强大的基于向量的中文词语预测模型,无需额外依赖,使用原生JavaScript实现。该模型通过分析文本中的词语关联性,生成词向量并进行预测,可用于简单的自然语言处理任务。 ## 项目特点 - **零依赖**:纯原生JavaScript实现,无需安装任何第三方库 - **易于使用**:只需修改配置文件和数据文件,运行主程序即可 - **两种运行模式**:训练模式和评估模式 - **可配置性**:支持多种参数调整,如向量维度、学习率、迭代次数等 - **位置权重**:考虑词语在句子中的位置关系,使用不同的衰减类型 ## 核心功能 1. **词向量生成与训练**:根据文本数据生成随机向量并进行增强训练 2. **词语关联分析**:计算词语之间的关联强度 3. **相关词预测**:查找与特定词语或词组最相关的词语 4. **向量持久化**:支持将训练好的向量保存到文件并在后续使用 ## 快速开始 ### 基本使用 1. 确保安装了Node.js环境 2. 修改 `config.js` 中的配置参数(可选) 3. 修改 `data.js` 中的训练数据和评估数据(可选) 4. 运行主程序: ```bash node index.js ``` ### 关键文件说明 - **config.js**:配置文件,控制程序的运行行为 - **data.js**:数据文件,包含训练数据和评估数据 - **index.js**:主程序入口 - **enhanced_vectors.json**:保存训练好的词向量(自动生成) ## 配置说明 在 `config.js` 文件中,您可以设置以下参数: ```javascript const config = { // 运行模式:'train'(训练) 或 'analyze'(评估) mode: 'train', // 评估模式参数 analyzeFilename: 'enhanced_vectors.json', // 训练模式参数 vectorDimensions: 10, // 向量维度 learningRate: 0.001, // 学习率 iterations: 2000, // 迭代次数 decayType: 'linear', // 衰减类型: 'linear'(线性) 或 'squared'(平方) isExportToFile: true, // 是否导出向量到文件 exportFilename: 'enhanced_vectors.json', // 导出文件名 // 分析与预测参数 isShowAllRelationships: false, // 是否显示所有词语关系 isFindMostRelatedWords: true, // 是否查询最相关的词 mostRelatedWordsCount: 3, // 最相关的词数量 isPredictMostRelatedWords: false // 是否进行最终预测 }; ``` ## 数据格式 在 `data.js` 文件中,数据格式如下: ```javascript // 训练数据:句子数组,每个句子是词语数组 const trainData = [ ['小明', '喜欢', '小红', '。'], ['小明', '喜欢', '小猫', '。'], ['小猫', '是', '动物', '。'], ]; // 评估数据:需要分析的词组数组 const analyzeData = [ ['小明', '喜欢'], ['小明', '喜欢', '动物'], ]; ``` ## 使用示例 ### 训练模型 1. 将 `config.js` 中的 `mode` 设置为 `'train'` 2. 在 `data.js` 中添加您的训练数据 3. 运行 `node index.js` 4. 训练好的向量将保存到 `enhanced_vectors.json` 文件中 ### 评估模型 1. 将 `config.js` 中的 `mode` 设置为 `'analyze'` 2. 在 `data.js` 中设置要分析的词组 3. 运行 `node index.js` 4. 查看输出的相关词结果 ## 技术原理 1. **向量初始化**:为每个不同的词语生成随机初始向量 2. **增强训练**:根据句子中的上下文关系和位置权重调整向量 3. **余弦相似度**:使用余弦相似度计算词语之间的关联强度 4. **位置权重衰减**:使用线性或平方衰减函数计算不同位置的词语权重 ## 文件结构 ``` vector-word-prediction-model/ ├── config.js # 配置文件 ├── data.js # 数据文件 ├── index.js # 主程序入口 ├── train.js # 训练模块 ├── analysis.js # 分析模块 ├── prediction.js # 预测模块 ├── utils.js # 工具函数 ├── file.js # 文件操作 └── enhanced_vectors.json # 训练后生成的向量文件 ``` ## 注意事项 - 模型相对简单,适合基础的文本分析和预测任务 - 训练数据量越大,预测效果通常越好 - 可以通过调整向量维度和迭代次数来优化结果 - 对于复杂的自然语言处理任务,建议使用专业的NLP库