Demagic everything in formulas.py. NFC.

Only one file left to go!
This commit is contained in:
Arthur O'Dwyer
2017-04-17 20:54:17 -07:00
parent 6165f77d3c
commit 8fdb9d06e6
2 changed files with 21 additions and 22 deletions

View File

@ -1,5 +1,4 @@
import math
import logging
import random
from conceptMapping import ConceptMapping
@ -43,23 +42,6 @@ def blur(value):
return value - root
def chooseObjectFromList(objects, attribute):
from context import context as ctx
temperature = ctx.temperature
if not objects:
return None
probabilities = []
for objekt in objects:
value = getattr(objekt, attribute)
probability = temperature.getAdjustedValue(value)
logging.info('Object: %s, value: %d, probability: %d',
objekt, value, probability)
probabilities += [probability]
i = selectListPosition(probabilities)
logging.info('Selected: %d', i)
return objects[i]
def chooseRelevantDescriptionByActivation(workspaceObject):
descriptions = workspaceObject.relevantDescriptions()
if not descriptions:

View File

@ -3,17 +3,32 @@ import logging
import formulas
def __chooseObjectFromList(temperature, objects, attribute):
if not objects:
return None
weights = [
temperature.getAdjustedValue(
getattr(o, attribute)
)
for o in objects
]
i = formulas.selectListPosition(weights)
return objects[i]
def chooseUnmodifiedObject(attribute, inObjects):
from context import context as ctx
temperature = ctx.temperature
workspace = ctx.workspace
objects = [o for o in inObjects if o.string != workspace.modified]
if not len(objects):
print 'no objects available in initial or target strings'
return formulas.chooseObjectFromList(objects, attribute)
return __chooseObjectFromList(temperature, objects, attribute)
def chooseNeighbor(source):
from context import context as ctx
temperature = ctx.temperature
workspace = ctx.workspace
objects = []
for objekt in workspace.objects:
@ -23,7 +38,7 @@ def chooseNeighbor(source):
objects += [objekt]
elif source.leftIndex == objekt.rightIndex + 1:
objects += [objekt]
return formulas.chooseObjectFromList(objects, "intraStringSalience")
return __chooseObjectFromList(temperature, objects, "intraStringSalience")
def chooseDirectedNeighbor(source, direction):
@ -38,6 +53,7 @@ def chooseDirectedNeighbor(source, direction):
def __chooseLeftNeighbor(source):
from context import context as ctx
temperature = ctx.temperature
workspace = ctx.workspace
objects = []
for o in workspace.objects:
@ -48,16 +64,17 @@ def __chooseLeftNeighbor(source):
else:
logging.info('%s is not on left of %s', o, source)
logging.info('Number of left objects: %s', len(objects))
return formulas.chooseObjectFromList(objects, 'intraStringSalience')
return __chooseObjectFromList(temperature, objects, 'intraStringSalience')
def __chooseRightNeighbor(source):
from context import context as ctx
temperature = ctx.temperature
workspace = ctx.workspace
objects = [o for o in workspace.objects
if o.string == source.string
and o.leftIndex == source.rightIndex + 1]
return formulas.chooseObjectFromList(objects, 'intraStringSalience')
return __chooseObjectFromList(temperature, objects, 'intraStringSalience')
def chooseBondFacet(source, destination):