小编Dan*_*Dan的帖子

在Python中聚类文本

我需要对一些文本文档进行聚类,并且一直在研究各种选项.看起来LingPipe可以在没有事先转换(向量空间等)的情况下聚集纯文本,但它是我见过的唯一明确声称可以处理字符串的工具.

有没有可以直接聚类文本的Python工具?如果没有,处理这个问题的最佳方法是什么?

python nlp cluster-analysis

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

如何使用SQL将垂直数据转换为水平数据?

我有一个表"项目",其中包含许多相关项目,如下所示:

ID   Rel_ID  Name  RelRank
---  ------  ----  -------
1    1       foo   1
2    1       bar   2
3    1       zam   3
4    2       foo2  1
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取查询,因此具有相同Rel_ID的项目将出现在同一行中,如下所示:

Rel_ID  Name1  Name2  Name3
------  -----  -----  -----
1       foo    bar    zam
2       foo2
Run Code Online (Sandbox Code Playgroud)

我尝试过多次选择表格:

SELECT k.Rel_ID, k.name 'Name1', k2.name 'Name2'
FROM item k, item k2
WHERE k.Rel_ID = k2.Rel_ID
Run Code Online (Sandbox Code Playgroud)

但这失败了.当然有一个转换或查询可以大大简化过程,我只是错过它,因为我之前没有以这种方式使用SQL.我错过了什么?

[编辑:添加了RelRank列,确实出现在我的数据中]

mysql sql pivot

18
推荐指数
1
解决办法
7万
查看次数

Xcode一致性错误:设置No Action Delete Rule ...是一项高级设置

在Xcode中创建数据模型后,它会为每个对象关系抛出以下错误:

Consistency Error:
Setting the No Action Delete Rule on [object relationship] is an advanced setting
Run Code Online (Sandbox Code Playgroud)

什么是Xcode试图告诉我,我该如何回应?

iphone xcode core-data data-modeling objective-c

18
推荐指数
2
解决办法
8055
查看次数

Python中列表函数的成本

基于这个旧线程,看起来Python中列表函数的成本是:

  • 随机访问:O(1)
  • 插入/删除到前面:O(n)
  • 插入/删除:O(1)

任何人都可以确认在Python 2.6/3.x中是否仍然如此?

python performance list

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

如何修复Xcode 4无用的取消注释行为

在Xcode 4中,如果注释斜杠位于行的开头,则仅选择"取消注释"命令才能正常工作.

所以在这一行上使用⌘/:

// sudo make me a sandwich
Run Code Online (Sandbox Code Playgroud)

结果如下:

sudo make me a sandwich
Run Code Online (Sandbox Code Playgroud)

但是当评论缩进时:

    //sudo make me a sandwich
Run Code Online (Sandbox Code Playgroud)

⌘/结果如下:

//    //sudo make me a sandwich
Run Code Online (Sandbox Code Playgroud)

如果我的光标位于注释行中,我希望⌘/取消注释.期.有没有人有解决方法/修复此问题?

xcode xcode4

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

在Python中计算余弦距离的优化方法

我写了一个方法来计算两个数组之间的余弦距离:

def cosine_distance(a, b):
    if len(a) != len(b):
        return False
    numerator = 0
    denoma = 0
    denomb = 0
    for i in range(len(a)):
        numerator += a[i]*b[i]
        denoma += abs(a[i])**2
        denomb += abs(b[i])**2
    result = 1 - numerator / (sqrt(denoma)*sqrt(denomb))
    return result
Run Code Online (Sandbox Code Playgroud)

在大型阵列上运行它可能会非常慢.这个方法的优化版本会运行得更快吗?

更新:我已经尝试了迄今为止的所有建议,包括scipy.这是要击败的版本,结合迈克和史蒂夫的建议:

def cosine_distance(a, b):
    if len(a) != len(b):
        raise ValueError, "a and b must be same length" #Steve
    numerator = 0
    denoma = 0
    denomb = 0
    for i in range(len(a)):       #Mike's optimizations:
        ai = a[i]             #only calculate …
Run Code Online (Sandbox Code Playgroud)

python arrays optimization distance

9
推荐指数
2
解决办法
5059
查看次数

如何将JSON对象映射到Objective C类?

我将JSON格式的数据从Web服务器映射到Objective C类(在Xcode中建模的NSManagedObjects,由Core Data处理).对于Objective C类的每个属性,我需要:

  1. 确定JSON对象中是否存在属性的键,
  2. 确定该键的值是否为空,并且
  3. 如果条件1和2为真,则将值传递给建模的类实例

现在,我正在为每个属性对这个序列进行硬编码,因此每个属性都需要如下代码:

// dictObject is the JSON object converted into a NSDictionary,
// and person is the instance of the modeled class

if ([dictObject objectForKey:@"nameFirst"] &&
    [dictObject objectForKey:@"nameFirst"] != [NSNull null]) {
    person.nameFirst = [dictObject objectForKey:@"nameFirst"];
}
Run Code Online (Sandbox Code Playgroud)

除了需要大量代码来处理各种类之外,这看起来很奇怪而且很脆弱:任何名称更改(或语言本地化)都会导致映射失败.

必须有一个更好的方法......我错过了什么?

serialization json objective-c deserialization

6
推荐指数
2
解决办法
8192
查看次数

以交互方式/非交互方​​式运行时,Python 以不同方式导入模块

我的一个 Python 脚本以交互模式运行,但从命令行运行时失败。不同之处在于,当从命令行运行时,它从一个坏的 .egg 文件中导入模块,而当以交互方式运行时,它使用当前目录中我的固定(解压缩)版本。

我的问题有两个方面:a) 为什么 Python 从这些位置运行时加载模块的方式不同,以及 b) 我有哪些解决方法?

python interactive egg non-interactive

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

将多个Emacs键绑定分配给单个命令?

我正在尝试使用ErgoEmacs模式,看看我是否可以更舒适地使用Emacs.它的一些键绑定非常直观,但在很多情况下我不想直接替换默认值.

例如,在ErgoEmacs的导航快捷键结构的上下文中,Mh作为Ca的替代品是有意义的 - 但我希望能够同时使用两者,而不仅仅是Mh.我试过简单地复制命令:

;; Move to beginning/ending of line
(defconst ergoemacs-move-beginning-of-line-key   (kbd "C-a")) ; original
(defconst ergoemacs-move-end-of-line-key         (kbd "C-e")) ; original
(defconst ergoemacs-move-beginning-of-line-key   (kbd "M-h")) ; ergoemacs
(defconst ergoemacs-move-end-of-line-key         (kbd "M-H")) ; ergoemacs
Run Code Online (Sandbox Code Playgroud)

但是Emacs只是用第二个键覆盖了第一个键绑定.解决这个问题的最佳方法是什么?

keyboard emacs keyboard-shortcuts key-bindings

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

如何在不破坏代码的情况下在Objective-C中拆分字符串

当我在字符串中插入换行符时,Xcode会抛出各种错误.例如,这失败了:

if (newMaximumNumberOfSides > 12) {
    NSLog(@"Invalid maximum number of sides: %i is greater than 
            the maximum of 12 allowed.", newMaximumNumberOfSides);
}
Run Code Online (Sandbox Code Playgroud)

但这有效:

if (newMaximumNumberOfSides > 12) {
    NSLog(@"Invalid maximum number of sides: %i is greater than the maximum of 12 allowed.", 
          newMaximumNumberOfSides);
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢前者,因为它看起来更清晰(较短的线条),但代码中断了.处理这个问题的最佳方法是什么?(子问题:这是在任何语法指南中引用的吗?我搜索了所有书籍的"换行符"都没有效果.)

iphone xcode objective-c ios

4
推荐指数
2
解决办法
1532
查看次数

在file.write上禁止换行

写入文本文件时,某些file.write实例后面跟着输出文件中的换行符,而其他实例则没有.我希望,除非我告诉他们发生的换行符.码:

    for doc,wc in wordcounts.items(): 
        out.write(doc)             #this works fine, no linebreak
        for word in wordlist: 
            if word in wc: out.write("\t%d" % wc[word]) #linebreaks appear
            else: out.write("\t0")                      #after each of these
        out.write("\n")        #this line had mixed spaces/tabs
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

更新

我应该从代码粘贴到SO中获取线索.由于某种原因,最后一行中有空格和制表符的混合,因此在TextMate中,它在视觉上出现在"for word ..."循环之外 - 但是解释器将其视为该循环的一部分.将空格转换为制表符解决了这个问题.

感谢您的输入.

python file line-breaks

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