我正在寻找一种算法,它可以从较长的字符串生成一个短(fx 16个字符(不重要)哈希码/摘要).
主要要求是几乎相同的字符串应该导致相同的摘要.
Fx 2几乎相同的邮件:
嗨马丁.这里有一些...垃圾邮件给你.关心XYZ.=> AAAA AAAA AAAA AAAA
嗨博.这里有一些...垃圾邮件给你.关心EFG.=> AAAA AAAA AAAA AAAA
返回相同的消化(或几乎相同),作为不同的邮件:
你好Finn.这是一封测试邮件.=> CCCC CCCC CCCC CCCC
将返回不同的摘要.
此算法将成为垃圾邮件过滤器的一部分.过滤器将记住邮件中的摘要,它肯定是垃圾邮件.如果相同的摘要显示在有疑问的邮件中,相同的摘要将导致过滤器增加spamscore.
我知道Levenshtein,但它要求我先了解弦乐.在这种情况下,我没有这方面的信息.我可以获得这些信息,但这需要过滤器来存储所有垃圾邮件并检查每个邮件,这将是一个非常缓慢的过程.
也许一些松散的压缩算法加上两者之间的Levenshtein距离的计算可以起作用.
任何指针赞赏.
我已成功编译了LLVM kalidoscope
C中的示例.
现在,我正在扩展代码:
#include "llvm/Support/CommandLine.h"
static cl::opt<std::string> InputFilename(cl::Positional, cl::desc("<input file>"), cl::Required);
int mail(...
Run Code Online (Sandbox Code Playgroud)
现在我编译使用:
clang ++ -g toy.cpp llvm-config --cppflags --ldflags --libs all
-O3 -o toy
在此更改后,我收到以下错误:
Undefined symbols for architecture x86_64:
"typeinfo for llvm::cl::GenericOptionValue", referenced from:
typeinfo for llvm::cl::OptionValueCopy<std::string> in toy-Pq1GSI.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
可能有什么问题,我该如何解决?
版本:
clang++ -v Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn) Target: x86_64-apple-darwin12.2.0 …
Run Code Online (Sandbox Code Playgroud) 我在Om中显示一个菜单,使用这样的组件和子组件:
(def app-state (atom {:location ""
:menuitems [["Pages" "/pages/"]
["Images" "/images/"]]}))
(defn menu-item-view [parent-cursor item owner]
(reify
om/IRender
(render [this]
(dom/li #js {:className (if (= (:location @app-state) (last item)) "active" "inactive")}
(dom/a #js
{:onClick (fn [_] (swap! app-state assoc :location (last @item)))}
(first item))))))
(defn menu-view [app owner]
(reify
om/IRender
(render [this]
(dom/li #js {:className "has-dropdown not-click"}
(dom/a nil "Menu")
(apply dom/ul #js {:className "dropdown"}
(om/build-all (partial menu-item-view app)
(:menuitems app)))))))
(om/root menu-view app-state
{:target (. js/document (getElementById "menu"))})
Run Code Online (Sandbox Code Playgroud)
我的问题是如何更新(@ …