【发布时间】:2020-09-24 18:28:57
【问题描述】:
我有一个 3000 个(大部分是唯一的)单词的列表,按它们在英语中的频率排序。我还有一个包含 3000 个独特句子的列表。理想情况下,我想使用 Python 为每个单词生成一个例句列表。因此,每个单词都会有一个句子,其中包含该单词,并与之配对。但是没有一个句子应该与一个以上的单词配对,也没有一个单词应该与一个以上的句子相关联。
但这里有一个问题,这是一个混乱的数据集,很多单词会出现在一个以上的句子中,有些单词只会出现在一个句子中,而很多单词不会出现在任何句子中。所以我不会得到我理想的结果。相反,我想要的是一个与单词匹配的句子数量最多的最佳列表。然后是被省略的句子列表。此外,理想情况下,排序列表应该更喜欢为低频词而不是高频词找到句子。 (因为它会更容易返回并找到更高频率单词的替换句子。)
这里有一个简短的例子来帮助澄清:
words = ["the", "cat", "dog", "fish", "runs"]
sentences = ["the dog and cat are friends", "the dog runs all the time", "the dog eats fish", "I love to eat fish", "Granola is yummy too"]
output = ["", "the dog and cat are friends", "the dog eats fish", "I love to eat fish", "the dog runs all the time"]
omitted = ["Granola is yummy too"]
如你所见:
- “Granola is yummy too”被省略了,因为它不包含任何单词。
- “the dog and cat are friends”与“cat”匹配,因为它是唯一包含“cat”的句子
- “the dog runs all time”与“runs”匹配,因为它是唯一包含“runs”的句子
- “the dog eats fish”与“dog”匹配,因为“dog”在英文中的出现频率低于“the”
- “I love to eat fish”与“fish”匹配,因为已经使用了唯一带有“fish”的句子
- “the”没有任何与之匹配的句子
我什至不知道从哪里开始为此编写代码。 (我是一名语言学家,只涉足编码,而不是专业的编码员。)所以任何帮助将不胜感激!
【问题讨论】:
标签: python string list sorting substring