bug fix for string interning
This commit is contained in:
parent
db64df36bf
commit
847a9dd094
|
@ -5,6 +5,18 @@ import json
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
|
||||||
|
def intern_strings(x):
|
||||||
|
if isinstance(x, (list, tuple)):
|
||||||
|
r = []
|
||||||
|
for y in x:
|
||||||
|
if isinstance(y, str):
|
||||||
|
r.append(sys.intern(y))
|
||||||
|
else:
|
||||||
|
r.append(y)
|
||||||
|
return r
|
||||||
|
return x
|
||||||
|
|
||||||
|
|
||||||
class Example(object):
|
class Example(object):
|
||||||
"""Defines a single training or test example.
|
"""Defines a single training or test example.
|
||||||
|
|
||||||
|
@ -27,7 +39,7 @@ class Example(object):
|
||||||
vals = [vals]
|
vals = [vals]
|
||||||
for val in vals:
|
for val in vals:
|
||||||
name, field = val
|
name, field = val
|
||||||
setattr(ex, name, [sys.intern(x) for x in field.preprocess(data[key])])
|
setattr(ex, name, intern_strings(field.preprocess(data[key])))
|
||||||
return ex
|
return ex
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -59,7 +71,7 @@ class Example(object):
|
||||||
if field is not None:
|
if field is not None:
|
||||||
if isinstance(val, six.string_types):
|
if isinstance(val, six.string_types):
|
||||||
val = val.rstrip('\n')
|
val = val.rstrip('\n')
|
||||||
setattr(ex, name, [sys.intern(x) for x in field.preprocess(val)])
|
setattr(ex, name, intern_strings(field.preprocess(val)))
|
||||||
return ex
|
return ex
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
Loading…
Reference in New Issue