- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我项目的一部分,我需要像这样表示短语检测后的输出 - (a,x,b),其中 a、x、b 是短语。我构建了代码并得到了这样的输出:
(CLAUSE (NP Jack/NNP) (VP loved/VBD) (NP Peter/NNP))
(CLAUSE (NP Jack/NNP) (VP stayed/VBD) (NP in/IN London/NNP))
(CLAUSE (NP Tom/NNP) (VP is/VBZ) (NP in/IN Kolkata/NNP))
我想让它像以前的表示一样,这意味着我必须删除“CLAUSE”、“NP”、“VP”、“VBD”、“NNP”等标签。
该怎么做?
首先将其写入文本文件,标记化并使用 list.remove('word')
。但这根本没有帮助。我要澄清一点。
(CLAUSE (NP Jack/NNP) (VP loved/VBD) (NP Peter/NNP))
(CLAUSE (NP Jack/NNP) (VP stayed/VBD) (NP in/IN London/NNP))
[Jack,loved,Peter], [Jack,stayed,in London]输出只是根据大括号,没有标签。
最佳答案
既然你标记了这个nltk
,让我们使用NLTK的树解析器来处理你的树。我们将阅读每棵树,然后简单地打印出树叶。完成。
>>> text ="(CLAUSE (NP Jack/NNP) (VP stayed/VBD) (NP in/IN London/NNP))"
>>> tree = nltk.Tree.fromstring(text, read_leaf=lambda x: x.split("/")[0])
>>> print(tree.leaves())
['Jack', 'stayed', 'in', 'London']
lambda 形式拆分每个 word/tag
对并丢弃标签,只保留单词。
我知道,您会问我如何处理整个文件的此类树,其中一些需要不止一行。这是 NLTK 的 BracketParseCorpusReader
的工作,但它希望终端采用 (POS word)
而不是 word/POS
的形式。我不会那样做,因为更容易欺骗 Tree.fromstring()
读取所有树,就好像它们是一棵树的分支一样:
allmytext = """
(CLAUSE (NP Jack/NNP) (VP loved/VBD) (NP Peter/NNP))
(CLAUSE (NP Jack/NNP) (VP stayed/VBD) (NP in/IN London/NNP))
(CLAUSE (NP Tom/NNP) (VP is/VBZ) (NP in/IN Kolkata/NNP))
"""
wrapped = "(ROOT "+ allmytext + " )" # Add a "root" node at the top
trees = nltk.Tree.fromstring(wrapped, read_leaf=lambda x: x.split("/")[0])
for tree in trees:
print(tree.leaves())
如您所见,唯一的区别是我们在文件内容周围添加了 "(ROOT "
and ")"
,并使用 for 循环生成输出.该循环为我们提供了顶级节点的子节点,即实际的树。
关于python - 如何删除 nltk 中斜杠前的 POS 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33705555/
我有一个右下角倾斜的元素,我必须在其上放置一个盒子阴影。有时倾斜的 Angular 被徽章覆盖 - 我的问题不适用,如果是这样的话: 这是信息框及其边 Angular 的 (s)css 部分(还有更多
是否可以在纯 html/css 中创建类似下面的内容? 我想做这个响应式和全 (100%) 宽度(最大左 Angular 100 像素,右边最小 50 像素,类似的东西)。 最佳答案 您可以通过转换(
如何在 fabricjs 文本中为文本提供渐变或斜 Angular 效果?? http://fabricjs.com/fabric-intro-part-2/ 这里给出了形状和所有示例,我将其与文本绑
我用过: http://apps.eky.hk/css-triangle-generator/ 为彼此对 Angular 放置的两个不等边三 Angular 形生成 css: 左下三 Angular
我是一名优秀的程序员,十分优秀!