我有 1M个 fasttext 格式的词向量(忽略包含词汇大小和暗淡的第一行)。每行是一个单词,后跟 300 个数字,所有空格分隔,例如。
Word 1.00 0.50 -2.30
WORD 0.90 0.40 -2.20
如何保留单词出现的第一行,忽略大小写,并删除所有其他行?例如,因为Word
最先出现,所以WORD
删除带有的行,输出为
Word 1.00 0.50 -2.30
我可以使用tr '[:upper:]' '[:lower:]' < wiki-news-300d-1M.vec
将所有单词转换为小写,但这会破坏单词的大小写。如果包括数字在内的整行匹配,我知道如何删除所有重复的行,但这在这里没有用。我的 python 解决方案是保留一个存储每个单词的小写字母的字典,并根据该字典检查每一行的单词,但我对 awk/sed(甚至 grep)解决方案感到好奇。