首先,在数据科学方面,我是一个完全的新手,我不是要求完整的解决方案,而是关于我应该阅读什么来完成我的任务的一些指导(使用什么算法、技术等来解决类似的问题)。
我有不同的字符串列表,其中包含我想要提取的一两条有用的信息。在下面的示例中,我需要从每一行中提取粗体和斜体部分。不过,这只是一个例子,最终我将需要一个可以应用于具有不同上下文的不同列表的过程。以下是500份清单中的一个小样本:
在我的完整列表中,我已经手动提取了品牌和模型。因此,我现在需要的是一种方法,自动化的过程中,一个新的清单,包含更多的品牌和型号。我想我可以这样做,但由于我不只是为这类数据这样做,它将不能很好地工作。
有人能给我一些建议吗?
谢谢!
发布于 2016-09-29 10:35:30
也许您可以在字典中使用Python。
您可以在字典中设置一组单词,每次都可以用您找到的新单词填充。
要找到新单词(如果模式与您的示例相同),您可以获取“品牌”(三星),下一个单词将是模型(UE65KS7500)。
这是一个很好的资源
发布于 2017-03-06 16:14:10
我喜欢做简单的事情首先,然后增加更多的复杂性,如果需要的话。我首先简单地删除我们不关心的电视功能,然后返回剩下的东西,假设品牌总是先于模型。例如,在Python中:
def get_brand_model(input):
"""
Returns the brand and model number from a TV description
>>> get_brand_model('50" Sony KDL 50W756CSAEP Smart LED Full HD')
('SONY', 'KDL 50W756CSAEP')
>>> get_brand_model('55" Samsung UE55JU6400 Smart LED HD')
('SAMSUNG', 'UE55JU6400')
>>> get_brand_model('LG 55LF652V 55" SMART 3D FULL HD')
('LG', '55LF652V')
>>> get_brand_model("HITACHI 55HGW69 55'' LED ULTRA SMART WIFI")
('HITACHI', '55HGW69')
>>> get_brand_model('TV 65" SAMSUNG UE65KS7500 4K LED Smart')
('SAMSUNG', 'UE65KS7500')
"""
def filter(word):
# Basic filter to remove TV features from the input string
skip_words = ['3d', '720p', '1080p', 'hd', '4k', 'smart', 'wifi',
'led', 'full', 'tv', 'ultra', 'inch']
is_measurement = '"' in word or "'" in word
return not word.lower() in skip_words and not is_measurement
words = [w.upper() for w in input.split(' ') if filter(w)]
# Return a tuple of (brand, model number)
return (words[0], ' '.join(words[1:]))
这可能需要一些调整,但问题中的5个示例在运行包含的doctest时都通过了。
发布于 2017-09-20 22:57:01
你也可以加入TF-以色列国防军,看看是否有共同的词频率与你想要提取的元素,或那些元素,你可以删除。
https://datascience.stackexchange.com/questions/14222
复制相似问题