当前位置: 首页 > 面试题库 >

使用Python在句子列表中形成单词的二元组

傅丁雷
2023-03-14
问题内容

我有一个句子列表:

text = ['cant railway station','citadel hotel',' police stn'].

我需要形成双字母对,并将它们存储在变量中。问题是当我这样做时,我得到一对句子而不是单词。这是我所做的:

text2 = [[word for word in line.split()] for line in text]
bigrams = nltk.bigrams(text2)
print(bigrams)

产生

[(['cant', 'railway', 'station'], ['citadel', 'hotel']), (['citadel', 'hotel'], ['police', 'stn'])

火车站和城堡酒店不能合二为一。我想要的是

[([cant],[railway]),([railway],[station]),([citadel,hotel]), and so on...

第一个句子的最后一个单词不应与第二个句子的第一个单词合并。我应该怎么做才能使其正常工作?


问题答案:

使用列表推导和zip:

>>> text = ["this is a sentence", "so is this one"]
>>> bigrams = [b for l in text for b in zip(l.split(" ")[:-1], l.split(" ")[1:])]
>>> print(bigrams)
[('this', 'is'), ('is', 'a'), ('a', 'sentence'), ('so', 'is'), ('is', 'this'), ('this',     
'one')]


 类似资料:
  • 问题内容: 哪种方法更好?使用元组,例如: 或清单,例如: 建议将哪一种用于此类用途,以及为什么使用(出于逻辑和性能考虑)? 问题答案: CPython解释器 将第二种形式替换为第一种形式 。 这是因为从常量加载元组是一个操作,但是列表将是3个操作;加载两个整数内容并构建一个新的列表对象。 由于您使用的是无法到达的列表文字,因此它将替换为元组: 这里第二字节码负载一个元组为常数,在 一个 步骤。将

  • 本文向大家介绍Python程序以升序排列句子中的单词,包括了Python程序以升序排列句子中的单词的使用技巧和注意事项,需要的朋友参考一下 为了按升序对句子中的单词进行排序,我们首先需要使用空格作为分隔点将句子分为单词。为简单起见,我们仅在空间上进行分割,并让标点符号在那里。我们也可以使用replace或regex将其删除。 拆分句子后,我们可以使用sort或sorted方法按字典顺序对单词进行排

  • 所以我做了一个函数 因此,它所做的是获取一个字符串,将其拆分,并生成一个字典,其中键是单词,值是它出现的次数。 好的,我现在要做的是,做一个函数,它接受这个函数的输出,并产生一个如下格式的列表- ((超过1个字母的单词列表),(最常用单词列表),(最长单词列表)) 另外,例如,假设两个单词出现了3次,并且两个单词都有6个字母长,那么这两个单词都应该包含在(最频繁的)和(最长的)列表中。 因此,到目

  • 我能够检查我输入的单词是否是回文。但是我怎么让它检查整个句子。比如:一个人,一个计划,一只猫,一只火腿,一头牦牛,一个山药,一顶帽子,一条运河——巴拿马! 这是我的回文: 输出: 输入一个句子:一个男人,一个计划,一只猫,一个火腿,一头牦牛,一个山药,一顶帽子,一条运河! 这句话不是回文 //这不也是回文吗?这就是我想说的。我想输入一整句话。 然而,如果我只做一个词: 输入一个句子:abccba

  • 问题内容: 我正在尝试从文本中提取所有包含指定单词的句子。 但它正在回报我: 代替 : 有什么帮助吗? 问题答案:

  • 问题内容: 我知道如何将列表映射到字符串: 而且我知道我可以使用以下命令将该字符串放入IN子句中: 我需要使用MySQLDB安全地完成同一件事(避免SQL注入)。在上面的示例中,由于foostring没有作为执行参数传递,因此它很容易受到攻击。我还必须在mysql库之外引用和转义。 (有一个相关的SO问题,但是那里列出的答案对MySQLDB不起作用或容易受到SQL注入的影响。) 问题答案: 直接使