【问题标题】:Finding unique example sentences from a list for a list of words从单词列表的列表中查找唯一的例句
【发布时间】: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


    【解决方案1】:

    ...从哪里开始...

    这是一种没有任何优化尝试的幼稚方法。

    • 用单词作为键和值的列表创建一个字典
      • {'word1':[], 'word2':[], ...}  
        
    • 对于字典中的每个项目
      • 如果单词在句子中,则遍历句子并将句子附加到项目列表中

    或许:

    • 组词
    • 制作一个空字典
    • 对于每个句子
      • 找到句子中的单词与单词集的交集
      • 使用句子作为键,交集作为值,将项目添加到字典中

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 2019-06-25
      • 2023-03-26
      • 2011-04-22
      相关资源
      最近更新 更多