首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文件中存储和读取NLTK块树

在文件中存储和读取NLTK块树
EN

Stack Overflow用户
提问于 2015-03-27 13:50:05
回答 1查看 346关注 0票数 1

我有一个NLTK树对象,其中有6个NP块。

代码语言:javascript
复制
t1 = Tree('S', [('现在', 'T'), ('每', 'RZ'), ('次', 'QV'), ('打火', 'VN'), ('比较', 'D'), ('反感', 'V'), Tree('NP', [('悦动', 'NZ')]), Tree('NP', [('打火', 'VI'), ('时', 'TG'), ('比较', 'D'), ('嘈杂', 'A'), ('的', 'UDE1'), ('声音', 'N')]), (',', 'WD'), ('当然', 'D'), Tree('NP', [('比', 'P')]), Tree('NP', [('面包车', 'N')]), Tree('NP', [('打火', 'VI'), ('的', 'UDE1'), ('声音', 'N')]), Tree('NP', [('算是', 'V'), ('好听', 'A'), ('的', 'UDE1')]), ('!', 'WT')])

我希望将这个t1保存在硬盘中,所以我将它写入如下所示的文件中。

代码语言:javascript
复制
>>> print(t1)
(S
    现在/T
    每/RZ
    次/QV
    打火/VN
    比较/D
    反感/V
    (NP 悦动/NZ)
    (NP 打火/VI 时/TG 比较/D 嘈杂/A 的/UDE1 声音/N)
    ,/WD
    当然/D
    (NP 比/P)
    (NP 面包车/N)
    (NP 打火/VI 的/UDE1 声音/N)
    (NP 算是/V 好听/A 的/UDE1)
    !/WT)
>>> file.write(t1.__str__())

由于t1保存在一个文件中,我尝试用BracketParseCorpusReader从一个文件中重新加载它,但是它工作得不太好。

代码语言:javascript
复制
# nltk.corpus.__init__.py
bracket2 = LazyCorpusLoader(
'Bracket2', BracketParseCorpusReader, r'car/.*\.txt', encoding='utf8') 

>>> bracket2.tagged_words()  # Bracket2 is a instance of BracketParseCorpusReader
[('悦动/NZ', 'NP'), ('比/P', 'NP'), ('面包车/N', 'NP'), ...]
# failed to load words other than NP chunk

>>> bracket2.tagged_words()[0]
('悦动/NZ', 'NP')
# failed to load the first word "现在/T"

>>> bracket2.tagged_sents()[0]
[('悦动/NZ', 'NP'), ('比/P', 'NP'), ('面包车/N', 'NP')]
# failed to load the whole sentence

读者看不出单词和标签。它似乎给了一些适当的参数关于POS分离器,sent_tokenizer,但我不知道如何定制它。

  • 我应该使用什么NLTK阅读器来阅读上面的t1
  • 或者,是否有方法将NLTK对象保存在文件中,并将其作为原始结构检索?
EN

回答 1

Stack Overflow用户

发布于 2015-04-02 12:00:19

如果我的理解是正确的,你想要保存一棵树,然后再“解释”那棵树,对吗?

使用tree.fromstring()可能是一种方法:

代码语言:javascript
复制
import nltk
t = nltk.tree.Tree.fromstring("(S (NP (D the) (N dog)) (VP (V chased) (NP (D the) (N cat))))")

它做的正是这个名字的意思;)

另见模块/nltk/tree.html

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29302267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档