小编Ren*_*auf的帖子

在文本文件Python中重复提取两个分隔符之间的一行

我有一个以下格式的文本文件:

DELIMITER1
extract me
extract me
extract me
DELIMITER2
Run Code Online (Sandbox Code Playgroud)

我想extract me在.txt文件中提取DELIMITER1和DELIMITER2之间的每个块

这是我目前的不良代码:

import re
def GetTheSentences(file):
     fileContents =  open(file)
     start_rx = re.compile('DELIMITER')
     end_rx = re.compile('DELIMITER2')

     line_iterator = iter(fileContents)
     start = False
     for line in line_iterator:
           if re.findall(start_rx, line):

                start = True
                break
      while start:
           next_line = next(line_iterator)
           if re.findall(end_rx, next_line):
                break

           print next_line

           continue
      line_iterator.next()
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python regex

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

计算250k列表的成对相似性的最有效方法

我有250,000个列表,每个列表平均包含100个字符串,存储在10个字典中.我需要计算所有列表的成对相似性(这里的相似性度量不相关;但是,简而言之,它涉及获取两个列表的交集并将结果标准化为某个常量).

我提出的用于成对比较的代码非常简单.我只是使用itertools.product将每个列表与其他列表进行比较.问题是以节省时间的方式在250,000个列表上执行这些计算.对于处理类似问题的任何人:根据以下标准,哪种常用选项(scipy,PyTables)最适合这种情况:

  • 支持python数据类型
  • 巧妙地存储一个非常稀疏的矩阵(大约80%的值将为0)
  • 有效(可在10小时内完成计算)

python matrix

9
推荐指数
1
解决办法
4134
查看次数

在段落分隔符不标准的段落上拆分文本

如果我的文本具有标准段落格式(空行后跟缩进),例如文本1,则很容易使用text.split("\n \n")提取段落.

文字1:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet sapien velit, ac sodales   
 ante. Integer mattis eros non turpis interdum et auctor enim consectetur, etc.

      Praesent molestie suscipit bibendum. Donec justo purus, venenatis eget convallis sed, feugiat    
 vitae velit,etc.
Run Code Online (Sandbox Code Playgroud)

但是如果我有非标准段落格式的文本如文本2怎么办?没有空行和变量前导空格.

文字2:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sit amet sapien velit, ac sodales   
 ante. Integer mattis eros non turpis interdum et auctor enim consectetur, etc.
    Praesent molestie suscipit bibendum. Donec justo purus, …
Run Code Online (Sandbox Code Playgroud)

python text-processing

6
推荐指数
1
解决办法
9344
查看次数

在Weka中以编程方式获取Xmeans clusterer输出

在Weka中使用Kmeans时,可以在模型的结果输出上调用getAssignments()以获取每个给定实例的集群分配.这是一个(截断的)Jython示例:

>>>import weka.clusterers.SimpleKMeans as kmeans
>>>kmeans.buildClusterer(data)
>>>assignments = kmeans.getAssignments()
>>>assignments
>>>array('i',[14, 16, 0, 0, 0, 0, 16,...])
Run Code Online (Sandbox Code Playgroud)

每个簇编号的索引对应于实例.因此,实例0在集群14中,实例1在集群16中,依此类推.

我的问题是:Xmeans有类似的东西吗?我在这里浏览了整个API ,但没有看到类似的东西.

cluster-analysis weka xmeans

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

获取字符串中非唯一单词的边界索引

假设我有以下字符串:

 (def strg "apple orange apple")
Run Code Online (Sandbox Code Playgroud)

我想要字符串中每个非唯一单词的边界索引.因此苹果的第一次出现应该具有边界指数(0,4),而苹果的第二次出现应该具有边界指数(13,17).

我一直在玩的一种方法是首先在字符串中存储每个字符的索引,然后,对于每个索引n,通过在n-1处查找空格来识别字边界(是的,这错过了开头的 - -string words).如果满足此条件,则迭代下一个k个字符,直到另一个空格被击中---紧邻该空格之前的位置处的字符是第二个边界索引.这个(失败的)代码的第一部分是

 (for [ch strg] 
      (let [indx  (int  (.indexOf  strg  (str ch)))] 
           (cond  (= (subs ch indx-1 ) " " ) 
           continue with rest of above-described code logic
Run Code Online (Sandbox Code Playgroud)

任何想法(Clojure,Java或Python都很好)将不胜感激

python java string clojure

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