JavaScript提取实体对象和关系对象交集并写入文件
假设实体对象的文件名为 'entity.txt',关系对象的文件名为 'relation.txt',交集的文件名为 'intersection.txt'。
数据示例:
entity.txt:
华为
小米
苹果
relation.txt:
华为 小米 品牌竞争
小米 苹果 品牌竞争
完整代码:
const fs = require('fs');
// 读取实体文件和关系文件
const entityFile = fs.readFileSync('entity.txt', 'utf-8');
const relationFile = fs.readFileSync('relation.txt', 'utf-8');
// 将实体和关系文件转换成数组
const entityArr = entityFile.split('
').map(entity => entity.trim());
const relationArr = relationFile.split('
').map(relation => relation.trim().split(' '));
// 找到实体和关系交集部分
const intersectionArr = relationArr.filter(relation => entityArr.includes(relation[0]) && entityArr.includes(relation[1]));
// 将交集部分写入文件
fs.writeFileSync('intersection.txt', intersectionArr.map(relation => relation.join(' ')).join('
'), 'utf-8');
代码说明:
- 使用
fs模块读取文件,将文件内容保存到变量中; - 将实体和关系文件内容转换成数组,实体数组中每个元素为一个实体名称,关系数组中每个元素为一个数组,包含两个实体名称和一个关系名称;
- 使用
filter方法找到实体和关系的交集部分,其中includes方法用于判断一个元素是否在数组中存在; - 将交集部分的数组转换成字符串形式,使用
join方法将每个元素用空格连接,再用\n连接每个元素,最终得到一个字符串,将该字符串写入文件中。
原文地址: https://www.cveoy.top/t/topic/mW5X 著作权归作者所有。请勿转载和采集!