无论给定的两个单词是否同义词



在这个任务中,你的任务是编写一个程序来判断两个单词是否同义词。你会得到一本描述同义词对的同义词词典。之后,您将回答几个查询,询问给定的两个单词是否同义词。输入文件中将包含同义词对字典和程序的查询。

使用以下规则来决定:

  1. 如果这对单词在输入中被声明为同义词,那么它们就是同义词。
  2. 成为同义词并不取决于顺序,例如,如果big是large的同义词,那么large也是big的同义词。
  3. 我们可以间接地推导出同义词关系:如果big是large的同义词,而large是huge的同义词,那么big就是huge的同义词。
  4. 如果两个单词仅在大小写上不同,则它们是同义词,例如same是same, same和also same(本身)的同义词。
  5. 如果以上规则都不能用来判断两个词是否同义词,那么它们就不是同义词。

输入:

输入以一些测试用例T (0 输出:

对于每对查询词输出字符串同义词不同或.

样本输入

2
4 
big large 
large huge 
small little 
apple banana
6 
same same 
big huge 
huge big 
apple peach 
big tall 
peach PEACH
5 
wood FORest 
meadoW PrAirIe 
WOOD Lumber 
lumber forest 
lumber forest
2 
wood LUMBER 
mEADOw fire

synonyms 
synonyms 
synonyms 
different 
different 
synonyms 
synonyms 
different

示例问题说明

在第一个测试用例中,有6个查询:
  1. 字是一样的
  2. 单词是派生的同义词。
  3. 与第二个查询对称。
  4. 不能使用任何规则派生同义词对。
  5. 没有规则可以用来派生同义词对,即使它们在英语中是同义词。
  6. 单词只是大小写不同。第二个测试用例:
  7. 被第三条规则定义为同义词。情况无关紧要。

哈佛大学和谷歌在2010年估计共有1,022,000个单词,并且这个数字将以每年数千个的速度增长。

所以,从逻辑上讲,你的代码应该知道所有这些,以便正常工作。这些词库及其链接和访问方法由外部api提供。您的应用程序应该使用这些api之一来搜索同义词。

以下是其中的一些-

https://openbase.com/categories/js/best-nodejs-dictionary-api-libraries

Node中没有内置函数来测试某个单词是否为同义词。但是(幸运的是)有一些库可以做到这一点。

下面是一个例子:首先,从NPM安装synonyms包:

npm i synonyms
然后,在你的JS文件中:
const synonyms = require("synonyms"); // Import the "synonyms" library
const fs = require("fs");
fs.readFile("path/to/file", "utf-8", (err, file) => {
// Read the file
const lines = file.split("n"); // Each line is split into an array
let result = lines.map(i => {
return i.split(" ");
}); // "result" holds an array of arrays. Index 0 is word 1 and index 1 is word 2
result.forEach(item => {
// Loop through our words
const s = synonyms(item[0].toLowerCase()); // Call the function
let allSynonyms = [];
for (let q in s) {
s[q].forEach(i => {
if(typeof i === "object")
i.forEach(allSynonyms.push);
else allSynonyms.push(i);
});
}
if (allSynonyms.includes(item[1].toLowerCase())) {
console.log(`Yes, "${item[0]}" is a synonym with "${item[1]}"!`); // Yes
} else {
// Nope!
console.log(`Nope, "${item[0]}" is not a synonym with "${item[1]}".`);
}
});
});

只是一个例子:)你可以在这里检查结果。运行npm start

相关内容

  • 没有找到相关文章

最新更新