As Norman said, with computers it has to eventually come down to a number. Crusader Kings breaks it down into a fairly simple "love/hate" system, where everything has binary effect on NPC reaction.
As you've started to explore, you can complicate the system (with hopefully beneficial effects) by getting rid of the simpler binary nature. Maybe an NPC has several "categories" of opinion towards the PC/each other: Personal opinion, professional opinion, religious opinion, etc. Different actions and considerations would use different combinations of the opinions. Deciding whether or not do do business with someone might use only personal/professional opinions and ignores religious opinion entirely. Deciding whether or not to marry someone uses personal opinion above all, but may be affected by religious opinion.