小编use*_*952的帖子

使用pandas数据帧获取tfidf的最简单方法是什么?

我想从下面的文档中计算tf-idf.我正在使用python和pandas.

import pandas as pd
df = pd.DataFrame({'docId': [1,2,3], 
               'sent': ['This is the first sentence','This is the second sentence', 'This is the third sentence']})
Run Code Online (Sandbox Code Playgroud)

首先,我想我需要为每一行获取word_count.所以我写了一个简单的函数:

def word_count(sent):
    word2cnt = dict()
    for word in sent.split():
        if word in word2cnt: word2cnt[word] += 1
        else: word2cnt[word] = 1
return word2cnt
Run Code Online (Sandbox Code Playgroud)

然后,我将它应用于每一行.

df['word_count'] = df['sent'].apply(word_count)
Run Code Online (Sandbox Code Playgroud)

但现在我迷路了.我知道如果我使用Graphlab,有一种简单的方法来计算tf-idf,但我想坚持使用开源选项.Sklearn和gensim都看起来势不可挡.获得tf-idf的最简单的解决方案是什么?

python tf-idf pandas gensim scikit-learn

20
推荐指数
2
解决办法
2万
查看次数

如何制作CRF ++的模板文件?

我是CRF ++的新手.我正在教自己查看它的手册:http: //crfpp.googlecode.com/svn/trunk/doc/index.html?source = navbar#templ

我不明白这意味着什么:

这是一个描述unigram功能的模板.当你给一个

模板"U01:%x [0,1]",CRF ++自动生成一组功能

函数(func1 ... funcN)如:

func1 = if(output = B-NP and feature ="U01:DT")返回1否则返回0

func2 = if(output = I-NP and feature ="U01:DT")返回1否则返回0

func3 = if(output = O and feature ="U01:DT")返回1否则返回0

.... funcXX = if(output = B-NP and feature ="U01:NN")返回1否则返回0

funcXY = if(output = O and feature ="U01:NN")return 1 else return 0.模板生成的要素函数数量

等于(L*N),其中L是输出的数量

为什么Unigram功能有很多行,它们是什么意思?

crf++ crf

8
推荐指数
2
解决办法
6422
查看次数

是否可以在 Python 中针对 XSD 1.1 验证 XML 文件?

我想使用 lxml.XMLSchema 针对 XSD 文件验证 XML 文件。但问题是 XSD 是 1.1。所以它不起作用。

这是 XML 的一部分:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="!!assert.xsd">
  <SizeType>10</SizeType>
</dictionary>
Run Code Online (Sandbox Code Playgroud)

这是它的 XSD 文件:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">
  <xs:element name="SizeType">
    <xs:simpleType>
      <xs:restriction base="xs:integer">
        <xs:assertion test="$value = 10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

那么,是否可以针对使用xs:assertion语句 (1.1)的 XSD 文件验证 XML 文件?

我认为这个问题与此密切相关:lxml with schema 1.1

python schema xsd lxml

5
推荐指数
1
解决办法
2429
查看次数

使用 lxml 验证 xml 文件时,是否可以显示超过 65535 的行号?

我尝试使用 lxml 验证一个大约有 100 万行的 xml 文件。这是我的代码。

import codecs
import lxml.etree as ET

xsd_file = codecs.open(r'test.xsd', 'rb', 'utf-8')
xml_file = codecs.open(r'test.xml', 'rb', 'utf-8')

xmlschema_doc = ET.parse(xsd_file)
xmlschema = ET.XMLSchema(xmlschema_doc)

doc = ET.parse(xml_file)

print (xmlschema.error_log.filter_from_errors())
Run Code Online (Sandbox Code Playgroud)

但是我发现如果错误行超过 65535,输出总是显示“65535:0”。也就是说,

file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s). 
file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s).
file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s).
Run Code Online (Sandbox Code Playgroud)

所以我无法确定上面的线条在哪里。有什么解决办法吗?

xsd lxml xml-validation

5
推荐指数
1
解决办法
428
查看次数

如何在Python 3.3中将某些字符转换为五位数的unicode?

我想在Python 3.3中将一些字符转换为五位数的unicode.例如,

import re
print(re.sub('a', u'\u1D15D', 'abc' ))
Run Code Online (Sandbox Code Playgroud)

但结果与我的预期不同.我必须把角色本身,而不是代码点?有没有更好的方法来处理五位数的unicode字符?

python regex unicode python-3.3

4
推荐指数
1
解决办法
1176
查看次数

如何转换&lt; 进入lxml中的&lt;,Python?

有一个xml文件:

<body>
    <entry>
         I go to <hw>to</hw> to school.
    </entry>
</body>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我在使用 lxml 解析器解析它之前将其更改<hw>&lt;hw&gt;</hw>to 。&lt;/hw&gt;

<body>
    <entry>
         I go to &lt;hw&gt;to&lt;/hw&gt; to school.
    </entry>
</body>
Run Code Online (Sandbox Code Playgroud)

但是修改解析的xml数据后,我想获取一个<hw>元素,而不是&lt;hw&gt;. 我怎样才能做到这一点?

python lxml

4
推荐指数
1
解决办法
7032
查看次数

在 ms access 2010 中使用正则表达式替换一列

在 ms access 2010 中有一个名为 sample 的表,其中仅包含一列 body (type: text):

<name>John</name><age>12</age>
Run Code Online (Sandbox Code Playgroud)

我想删除括号内的每个字符串。看到这个:

John12
Run Code Online (Sandbox Code Playgroud)

我添加了 Microsoft VBScript 正则表达式 5.5 库并创建了这个模块:

Function Replace_Regex(str1, patrn, replStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True

Replace_Regex = regEx.Replace(str1, replStr)
End Function
Run Code Online (Sandbox Code Playgroud)

然后,我运行这个查询:更新样本集 body = Replace_Regex(body, "<[^>]+?", "")

但结果是:

 ame>John</name><age>12</age>
Run Code Online (Sandbox Code Playgroud)

所以有什么问题?

regex ms-access replace ms-access-2010

3
推荐指数
1
解决办法
3493
查看次数