有没有办法让ElasticSearch识别分析字段的完全匹配?理想情况下,我想小写,标记,干,甚至语音化我的文档,然后让查询拉出"精确"匹配.
我的意思是,如果我将"汉堡包"和"汉堡包"编入索引,它们将被分析为["汉堡包","包子"]和["汉堡包"].如果我搜索"汉堡包",它将仅返回"汉堡包"文档,因为这是"精确"匹配.
我尝试过使用关键字tokenizer,但这不会阻止个别令牌.我是否需要做一些事情以确保令牌的数量相等?
我熟悉多字段并使用"not_analyzed"类型,但这比我正在寻找的更具限制性.我想要完全匹配,后期分析.
我想对烹饪食谱进行一些自然语言处理,特别是成分(可能稍后准备).基本上我正在寻找创建我自己的POS标签集来帮助我确定配料线的含义.
例如,如果其中一种成分是:3/4杯(轻微包装)平叶欧芹叶,分开
我希望标签能够表达所列出的成分和质量,通常是一个数字,然后是一些测量单位.例如:
3\NUM-QTY /\FRACTION4\NUM-QTY杯\ N-MEAS(轻微\ ADV包装\ VD)[平叶\ ADJ欧芹\ N]\INGREDIENT离开\ N,分割\ VD
我在这里找到的标签.
我不确定一些事情:
我觉得这种语言处理是如此具体,以至于在适用的集合上训练标记器是有益的,但我不确定如何继续.
谢谢!
我学会了如何在上一个问题中创建播放列表,但现在我无法弄清楚如何向其中添加曲目.现在我有:
tracks.sort(key=lambda tup: tup[0])
i = 0
for trackList in generatePlaylists(tracks,10):
i += 1
playlistname = str(i)
p = {'name': playlistname}
playlist = iTunes.classForScriptingClass_("playlist").alloc().initWithProperties_(p)
iTunes.sources()[0].playlists().insertObject_atIndex_(playlist, 0)
# Find the playlist I just made
for playlist in iTunes.sources()[0].playlists():
if playlist.name() == playlistname:
newPlaylist = playlist
# Add the tracks to it
for track in trackList:
print track[1].name()
iTunes.add_to_(track[1],newPlaylist)
Run Code Online (Sandbox Code Playgroud)
我的轨道位于元组列表中,元组tracks
的第一个元素是分数,第二个元素是实际的轨道对象. generatePlaylists
是一个迭代器,它将所有库轨道分成10个列表.
上面的代码运行没有错误,但在iTunes中播放列表是空的.
我想将自定义标记器合并到我正在开发的Web应用程序(在Pyramid上运行)中.我使用NLTK在我的本地机器上正常工作,但我读过NLTK生产相对较慢.
似乎存储标记器的标准方法是Pickle it.在我的机器上,加载11.7MB pickle文件需要几秒钟.
NLTK对生产来说是否实用?我应该看看scikit-learn还是像Mahout这样的东西?
如果NLTK足够好,那么确保正确使用内存等的最佳方法是什么?
如何使用Python和Scripting Bridge创建播放列表?
到目前为止,我有:
from Foundation import *
from ScriptingBridge import *
iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
newPlaylist = iTunes.iTunesPlaylist()
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.
我见过Ruby和Objective C的东西,但我真的不懂语言.
Cask使用OSX上的内置emacs,它不支持Cask所需的--script参数.有没有办法告诉Cask使用Emacs.app版本?
我在这里尝试了解决方案:如何在终端启动"emacsformacosx", 但他们没有帮助.
我终于刚刚输入了cask文件底部提供的命令:
/Applications/Emacs.app/Contents/MacOS/Emacs -Q --script ~/.cask/cask-cli.el
Run Code Online (Sandbox Code Playgroud)
这不是很优雅.