面尝试从词汇的产生角度探讨这个问题。
从文献来看,“妖怪”一词的出现比“妖精”早。
最早出现“妖怪”一词的文献中,“妖怪”一词或可解释为“妖邪怪异(之事)”。用现在的语法说,是一个形容词,有时可作名词,未必是现在大家理解的成形的妖怪。
推测可能在汉代神秘主义理论流行时期,逐渐为这种“妖邪怪异之事”赋予了形体。比如太史公写陈胜起义时,就采信篝火狐鸣一事,记入书中,这说明最迟在司马迁所处的年代,很多人已经相信妖怪的存在。
再后来,“妖精”这个词就逐渐出现了。
“妖精”这个词呢,从诞生之日起就是名词,指“妖怪和精灵”。
这个精灵可不是西方的elf,当时的中国人不知道elf,当时“精灵”这个词指的是各类鬼怪神灵。你没看错,当时神仙也可能被叫成“精灵”……
所以要我猜测的话,结论就是:
“妖精”里包括“妖怪”,“妖精”的含义来源于“妖怪”,也就是说来源于“妖邪怪异之事”。
后来的中国民间文学中,对这两者的区分,个人觉得不明显。
《西游记》算是妖怪妖精出场比较勤的一部作品了。拿其中久负盛名的白骨精来说,白骨精出场的那一章,标题把它称作“尸魔”,正文中大多称作“妖精”,但也有“孙大圣去时,惊动那怪”这样的句子。
这里比较靠谱的研究方法是统计一下《西游记》中“妖怪”“妖精”两次的出现次数和出处,即可得知《西游记》的作者怎么理解这两个词。其他作品也可参照该方法。
这两个词真正区别开来,猜测可能是从近代拿本土词翻译外来神话开始的。