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 math
import logging
import random import random
from conceptMapping import ConceptMapping from conceptMapping import ConceptMapping
@ -43,23 +42,6 @@ def blur(value):
return value - root 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): def chooseRelevantDescriptionByActivation(workspaceObject):
descriptions = workspaceObject.relevantDescriptions() descriptions = workspaceObject.relevantDescriptions()
if not descriptions: if not descriptions:

View File

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