标签: matching

一个很好的Python/Django协同过滤/匹配/推荐库?

我正在寻找一个库,我可以根据问题的答案将我的用户与其他Django模型相匹配 - 也就是我自己的django模型.

所以我想要一些可定制的东西,有良好的文档/支持,希望不会太难实现!

有没有人有任何好的建议?我查看了Crab和Django-recommender,但似乎都没有很好的记录.

基本上我所拥有的是两个调查应用程序,具有相应但不完全相同的问题和答案.例如,app1中的一个问题可能是"你每周喝多少晚?" 在app2中的一个问题可能是"你希望每周喝多少个晚上?",并在实例中用第一个问题的外键.我想对这些问题做出回答,并使用它们将每个组中的用户相互配对,根据组1中的用户已经使用的内容为第2组用户提供建议.

python django recommendation-engine matching collaborative-filtering

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

如何匹配dna序列模式

我找不到解决这个问题的方法.

输入输出序列如下:

 **input1 :** aaagctgctagag 
 **output1 :** a3gct2ag2

 **input2 :** aaaaaaagctaagctaag 
 **output2 :** a6agcta2ag
Run Code Online (Sandbox Code Playgroud)

输入序列可以是10 ^ 6个字符,并且将考虑最大的连续模式.

例如,对于input2"agctaagcta"输出将不是"agcta2gcta",但它将是"agcta2".

任何帮助赞赏.

algorithm sequence matching dna-sequence

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

如何在Visual Studio 2012中禁用大括号完成?

我最近升级到了Visual Studio 2012.每当我站在一个卷曲的开口支架并按下tab时,它会自动插入2个新行和一个右括号.

{|<- cursor
Run Code Online (Sandbox Code Playgroud)

按下标签给了我.

{
    |
}
Run Code Online (Sandbox Code Playgroud)

我希望禁用此行为.我在过去一小时内搜索了Google和MSDN的设置,但我一直无法找到任何可以解决我问题的内容.

我已经禁用了所有已安装的插件,看它是否会消失,但事实并非如此.

c++ curly-braces matching visual-studio-2012

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

如何有效地找到两个列表中匹配元素的索引

我正在处理两个大型数据集,我的问题如下.

假设我有两个列表:

list1 = [A,B,C,D]

list2 = [B,D,A,G]

除了O(n 2)搜索之外,如何使用Python有效地找到匹配的索引?结果应如下所示:

matching_index(list1,list2) -> [(0,2),(1,0),(3,1)]

python algorithm matching

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

Python中最有效的迭代大文件的方式(10GB +)

我正在编写一个Python脚本来浏览两个文件 - 一个包含UUID列表,另一个包含大量日志条目 - 每行包含一个来自另一个文件的UUID.该程序的目的是从file1创建UUIDS列表,然后每次在日志文件中找到UUID时,每次找到匹配时增加相关值.

长话短说,计算每个UUID出现在日志文件中的次数.目前,我有一个列表,其中填充了UUID作为键,并且"点击"作为值.然后是另一个循环,它迭代日志文件的每一行,并检查日志中的UUID是否与UUID列表中的UUID匹配.如果匹配,则递增该值.

    for i, logLine in enumerate(logHandle):         #start matching UUID entries in log file to UUID from rulebase
        if logFunc.progress(lineCount, logSize):    #check progress
            print logFunc.progress(lineCount, logSize)  #print progress in 10% intervals
        for uid in uidHits:
            if logLine.count(uid) == 1:             #for each UUID, check the current line of the log for a match in the UUID list
                uidHits[uid] += 1                   #if matched, increment the relevant value in the uidHits list
                break                                #as we've already found the match, …
Run Code Online (Sandbox Code Playgroud)

python design-patterns file matching

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

Java中的快速有序列表匹配算法

我在表单中有一个规则列表

L1 - >(A,B,C)

L2 - >(D,E),

L3 - >(F,G,A),

L4 - >(C,A)

.....

此列表包含约30k这样的规则.

我有一个输入形式(X,Y,Z)

这创建了一种方法

List <Rule> matchRules(input)
Run Code Online (Sandbox Code Playgroud)

属于类RuleMatcher

我从一个非常简单明了的天真解决方案开始,为了让框架失效,让事情变得有效.

public RuleMatcher(Collection<Rule> rules) {
   this.rules = rules;
}

public Collection<Rule> matchRules(List<Token> input) {
   List<Rule> matchingRules = new ArrayList<>();
   for(Rule r: this.rules) {
        if(r.matches(input)) {
            matchingRules.add(r);
        }
   }
   return matchingRules; 
}
Run Code Online (Sandbox Code Playgroud)

哪个matches是一个非常简单的函数,它检查长度是否相同,然后将每个标记检查为for循环.

这个matchRules函数被调用了数十亿次.


显然这是一个非常糟糕的实现.根据我的分析器,至少有一半的执行时间是在这个匹配函数中花费的.

我在考虑两种可能的解决方案:

A.某种Trie数据结构,它包含可以匹配的规则链.

B.某种哈希函数.每个符号都有一个唯一的标识符.不幸的是,大约有8千个独特的符号,所以这可能很难.

C.对右侧的大小,规则中的令牌数量进行哈希映射调整.不幸的是,大多数规则大小相同,所以这甚至不值得.

D.一个很棒的解决方案,你们中的一个想出来.

我希望有人可以解释这个问题.


编辑:令牌只是一个具有唯一编号的对象.例如,"NN"是一个令牌."NN"的每个实例都完全相同.

匹配代码:

public boolean rhsMatches(List<Token> tokens) {
   if(tokens.size()!=rhsSize()) return false;
   for(int i = 0;i<rhsSize();i++) {
      if(!rightSide.get(i).equals(tokens.get(i)) { …
Run Code Online (Sandbox Code Playgroud)

java algorithm parsing list matching

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

如何从OpenCV Python中的特征匹配中获取像素坐标

我需要获取功能匹配器在提供的代码中选择的像素列表xy坐标.我正在使用Python和OpenCV.谁能帮我?

img1=cv2.imread('DSC_0216.jpg',0)
img2=cv2.imread('DSC_0217.jpg',0)

orb=cv2.ORB(nfeatures=100000)
kp1,des1=orb.detectAndCompute(img1,None)
kp2,des2=orb.detectAndCompute(img2,None)

img1kp=cv2.drawKeypoints(img1,kp1,color=(0,255,0),flags=0)
img2kp=cv2.drawKeypoints(img2,kp2,color=(0,255,0),flags=0)
cv2.imwrite('m_img1.jpg',img1kp)
cv2.imwrite('m_img2.jpg',img2kp)

bf=cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches=bf.match(des1,des2)
matches=sorted(matches, key= lambda x:x.distance)
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing matching feature-detection

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

查找匹配Java中给定子树的树中的所有子树

我在Java中编写代码,使用无序的根树,其中每个节点可以有任意数量的子节点.给定树T和子树S,我希望能够找到T中与S匹配的所有子树(即T中与S同构的所有子树).

如果S的节点可以映射到T的节点,使得S的边缘映射到T中的边缘,则T的子树与S同构.

一个先前的问题已经被问如何找到如果树包含另一个子树,但是我希望能够找到所有 T中的子树匹配的S.此外,我希望能够从每个节点在T映象在每场比赛S中的对应节点

也就是说,当找到匹配时,它应该不仅仅作为指向T中节点的指针返回,其中树的根与S匹配,但匹配应该返回为类似于节点指针对的列表[ (T1,S1),(T2,S2),...(Tn,Sn)]使得T1是指向T中的节点的指针,该节点映射到子树中的节点S1,依此类推.

或者,可以返回简单的值对列表,因为树T中的每个节点和子树S具有与之关联的唯一整数标识符.

例如:

鉴于树T如下:

    a
   / \
  b   c
 / \  
d   e
Run Code Online (Sandbox Code Playgroud)

和子树S为:

    x
   / \
  y   z
Run Code Online (Sandbox Code Playgroud)

应返回以下匹配列表:

[(a,x),(b,y),(c,z)] [(b,x),(d,y),(e,z)]

唯一匹配由T中的节点集确定,而不是 T和S中节点之间的映射.

所以以下匹配:

[(a,x),(b,z),(c,y)]

被认为是重复的

[(a,x),(b,y),(c,z)]

因为它们具有来自T(a,b,c)的相同节点集,所以只应返回其中一个匹配.

另一个例子,给定树T:

    a
   /|\
  b c d
Run Code Online (Sandbox Code Playgroud)

和子树S:

  x
 / \  
y   z
Run Code Online (Sandbox Code Playgroud)

应返回以下匹配列表:

[(a,x),(b,y),(c,z)] [(a,x),(b,y),(d,z)] [(a,x),(c,y) ,(d,Z)〕

任何人都可以提供任何示例代码如何做到这一点?

编辑(与Chris Kannon的评论有关):

我想你想要有人为你编码答案?你到底有多远?你写了什么代码? - Chris Kannon 1小时前

我有以下代码,在运行时,构建一个指向树中节点的指针列表(matchesList),其中子树根与给定的子树相匹配.但是,可能存在多个以同一节点为根的子树,并且当前每个节点最多只会添加一次到matchesList,而不管有多少匹配在那里.

另外,我无法弄清楚如何在子树中的节点和原始树中找到的匹配节点之间建立上述映射.

package Example;

import java.util.LinkedList;
import java.util.Vector;

public …
Run Code Online (Sandbox Code Playgroud)

java tree subtree matching isomorphism

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

工人调度算法

问题

这是我想要解决的问题的本质.在周末,我们有工人在托儿所照顾孩子.一个周末有16个不同的插槽可供填写.因此,对于为期4周的月份,有64个插槽可供填充.我们最多有30名托儿所工人(虽然我们需要更多.像孩子一样的人?).

编辑:每个时段都是离散的 - 它们不重叠.

目前有一个人每个月都会提出托儿所时间表.每个月根据每个人的喜好制定这个时间表是一项复杂而耗时的任务.在考虑了这个问题后,我心想,"必须有一个更好的方法!"

算法

我注意到问题基本上是一个二分图.在婚姻问题也是一个二分图,您可以通过使用像匹配算法解决埃德蒙兹的匹配算法.

但是这假设一个节点集中的每个节点仅匹配另一个节点集中的一个节点.就我而言,每个托儿所工作者只能工作一个时间段.由于我们严重缺乏人手,这是行不通的!一群人每个月必须工作两次才能填满所有时间段.

这似乎意味着这更像是经典的"医院/居民问题".它与婚姻问题的不同之处在于,"女性"可以接受来自不止一个"男人"的"建议"(例如,医院可以接纳多个居民).在我的情况下,托儿所工人可以占用多个时间段.

现在怎么办?

呼!

现在我已经完成了设置....有没有人知道任何解释或显示这种算法的好链接?有没有更好的方法来解决这个问题?我在想它吗?我做了一个谷歌搜索"医院居民算法",并找到了研究生的论文.尔加!我毕业于CS学位并参加了AI课程......但那是6年前的事了.救命!

Aaaaany建议表示赞赏!!

algorithm scheduling constraints graph matching

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

匹配不同数据帧上的多个列并获取其他列作为结果

我有两个大数据框,一个(df1)有这个结构

   chr    init
1  12  25289552
2   3 180418785
3   3 180434779
Run Code Online (Sandbox Code Playgroud)

另一个(df2)有这个

    V1    V2     V3
10  1     69094 medium
11  1     69094 medium
12  12 25289552 high
13  1     69095 medium
14  3 180418785 medium
15  3 180434779 low
Run Code Online (Sandbox Code Playgroud)

我试图做的是添加列V3df2df1,来获得突变的信息

   chr    init  Mut
1  12  25289552 high
2   3 180418785 medium
3   3 180434779 low
Run Code Online (Sandbox Code Playgroud)

我正在尝试将两者加载到R中,然后使用匹配进行for循环,但它不起作用.你知道有什么特别的方法吗?我也愿意使用awk或类似的东西

r matching multiple-columns dataframe

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