句子的输入列表:
sentences = [
"""Well, I've tried to say "How Doth the Little Busy Bee," but it all came different!""",
"""Alice replied in a very melancholy voice. She continued, 'I'll try again.'"""
]
所需输出:
How Doth the Little Busy Bee,
I'll try again.
是否有一种方法可以使用内置或第三方标记器使用nltk
提取引用(可以以单引号和双引号显示)?
我曾尝试使用sexprotokenizer
tokenizer作为parens
值提供单引号和双引号,但结果与预期相差甚远,例如:
In [1]: from nltk import SExprTokenizer
...:
...:
...: sentences = [
...: """Well, I've tried to say "How Doth the Little Busy Bee," but it all came different!""",
...: """Alice replied in a very melancholy voice. She continued, 'I'll try again.'"""
...: ]
...:
...: tokenizer = SExprTokenizer(parens='""', strict=False)
...: for sentence in sentences:
...: for item in tokenizer.tokenize(sentence):
...: print(item)
...: print("----")
...:
Well,
I've
tried
to
say
"
How
Doth
the
Little
Busy
Bee,
"
but it all came different!
----
Alice replied in a very melancholy voice. She continued, 'I'll try again.'
有类似这样和这样的线程,但它们都建议使用基于正则表达式的方法,但是,我很好奇这是否只能用nltk
来解决-听起来像是自然语言处理中的常见任务。
在引擎盖下,SExprTokenzer
也是一种基于正则表达式的方法,从您链接到的源代码中可以看出。
从源代码中还可以看出,作者显然没有考虑打开和关闭“paren”用相同的字符表示。嵌套的深度在同一迭代中增加和减少,因此标记器看到的引用是空字符串。
我认为,识别引号在NLP中并不常见。人们使用引号的方式很多(特别是当你使用不同的语言时…),因此,用稳健的方法很难做到正确。对于许多NLP应用程序,引用只是被忽略了,我想说。。。
我想做的是提取单引号或双引号之间的所有值。 假设我有以下值。 所需的输出为: 我应该如何编写正则表达式(使用一个正则表达式一次提取所有所需的值),以获得包含在第一个和最后一个引号中的整个文本? p、 我想使用方法
问题内容: 我想从一般的HTML页面中提取所有文本(是否显示)。 我想 删除 任何HTML标记 任何JavaScript 任何CSS样式 是否有一个正则表达式(一个或多个)可以实现? 问题答案: 您不能真正用正则表达式解析HTML。太复杂了。RE根本无法正确处理部分。此外,某些常见的HTML之类的东西将在浏览器中作为适当的文本工作,但可能会使天真的RE感到困惑。 有了合适的HTML解析器,您会更快
问题内容: 我写了以下正则表达式来标记某些短语模式 此模式将正确标记短语,例如: 并使用2个短语给出所需的输出: 披萨很好 意大利面不好 但是,如果我的句子是这样的: 仅匹配短语: 而不是所需的: 我如何在第二个示例中也加入正则表达式模式? 问题答案: 首先,让我们看一下NLTK提供的POS标签: (注意:以上是NLTK v3.1的输出,旧版本可能有所不同) 您实际上想要捕获的是: NN VBD
我正在尝试匹配这些字符串: 单引号中不能包含双引号 双引号中没有双引号 单引号内的单引号-单引号只能包含内部的文本 我想出了以下正则表达式: 但它不起作用。
此问题与RegEx有关:在引号之间抓取值 最佳答案中的正则表达式 用 Debuggex演示 还匹配以转义双引号开头的字符串。我试图将定义扩展到使用否定查找。 Debuggex演示 但这不会改变匹配模式中的任何内容。关于如何将转义单引号/双引号作为起始模式排除,有什么建议吗? 我想在支持regex lookback的nedit中使用它作为突出显示模式。 所需匹配的示例:
我有一个非常好的正则表达式,它从文本中选择引用: 但是我需要一个正则表达式,它从没有引号的文本中选择引号。 例如,我有: 鲸鱼包括八个现存的家族:“鲸豚科”(白鲸),“鲸豚科”(露脊鲸),“鲸豚科”(侏儒露脊鲸),“白鲸科”(灰鲸),“独角鲸科”(白鲸和独角鲸),“抹香鲸科”(抹香鲸)。。。 我需要在引号之间提取文本: 龟甲翅目,龟甲翅目,龟甲翅目,... 要提取括号之间的文本,我使用正则表达式: