【问题标题】:How do I save classifier's most informative features into a variable? (Python NLTK)如何将分类器信息最丰富的特征保存到变量中? (Python NLTK)
【发布时间】:2017-08-07 13:16:35
【问题描述】:

假设我有这段代码:

classifier.show_most_informative_features(10)

Python 将显示 10 个特征以及它们的 pos,neg 标签。 有没有办法将特征保存到变量中?

【问题讨论】:

  • classifier 对象是否有一种方法可以返回这些功能,而不仅仅是显示它们,或者有一个保存它们的实例变量?那就是我要看的地方。您的问题实际上是如何获取方法显示的内容而不是仅仅显示它,引用None 的变量对您没有任何好处。

标签: python classification nltk training-data


【解决方案1】:

方法show_most_informative_features() 打印出请求的特征,并返回None。要返回功能名称和“信息量”列表,请使用:

features = classifier.most_informative_features(10)

你会得到一个可以像这样显示的对列表:

for f, w in features:
    print(f, w)

【讨论】:

    【解决方案2】:

    解决方案适用于 python3,保存到 output_string 变量。

    from io import StringIO
    import contextlib
    import sys
    
    @contextlib.contextmanager
    def stdout_redirect(where):
        sys.stdout = where
        try:
            yield where
        finally:
            sys.stdout = sys.__stdout__
    
    with stdout_redirect(StringIO()) as new_stdout:
        classifier.show_most_informative_features(15)
    
    new_stdout.seek(0)
    
    # output assigned to variable
    output_string = new_stdout.read()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2011-10-26
      • 2013-01-10
      • 2018-07-29
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多