我正在尝试执行一个很容易由人类完成的任务:检测两行的第一行是否为标题行。这是示例输入的示例:
示例1:是
name,age
bob,12
示例2:是
first,last
bob,jones
Example3:否
1,2
8,hi
Example4:否
bob,jones
tom,smith
我对从何处开始进行有根据的猜测感到迷茫。它不一定是完美的(80%会很好),但是确定上述条件的捷径算法可能是什么?我在想一些事情:
# header is usually always strings (wrong in case 4)
for val in header:
is val.replace(',','').replace('.','').replace('-','').isdigit():
header = False
else:
header = True
答案 0 :(得分:1)
一种方法是在您的行中具有要搜索的预设关键字列表;例如['name', 'age', 'first', 'last']
。当然,这应该在您的数字检查之外。
如果您有一个或多个匹配项,则将其称为标头。
答案 1 :(得分:0)
似乎单词是数据标题中的普通名词。您可以使用诸如TextBlob之类的NLP框架来进行POS(词性)工作,以识别单词是名词还是人的名字。